Фактически я работаю над вики-проектом, чтобы получить данные БД по разметкам с подключением БД.
моя проблема заключается в:
внешний интерфейс показывает только последнюю строку «data / $ text» $ text = $ zeile [‘name’];
все остальные (здесь, например,
$ text = $ zeile [‘largeimage’]; `
$ text = $ zeile [‘link’];) не отображаются спереди —
ошибки нет — просто не отображается 🙁
мой код:
Markup_e('amazon','inline',"/\\[:amazon ([A-Z;,a-z,0-9,' ']+):\\]/",
"PRR().amazon(\$m[1])");
function Amazon($name) {
include('/www/htdocs/drtaarde/inc/config.php'); //Datenbankverbindung herstellen
$sql = "SELECT * FROM d029a62b WHERE asin LIKE '%$name%';";
$db_erg = mysqli_query( $link, $sql );
if ( ! $db_erg ) {
die('Ungültige Abfrage: ' . mysqli_error());
}
while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC)) {
$text = $zeile['largeimage'];
$text = $zeile['link'];
$text = $zeile['name'];
return $text;
}
}
спасибо за любой ответ
Спасибо, я попробую оба, но я получаю только ошибку
мой полный код
<?php
Markup_e('amazon','inline',"/\\[:amazon ([A-Z;,a-z,0-9,' ']+):\\]/",
"PRR().amazon(\$m[1])");
function Amazon($name) {
include('/www/htdocs/drtaarde/inc/config.php'); //Datenbankverbindung herstellen
$sql = "SELECT * FROM d029a62b WHERE asin LIKE '%$name%';";
$db_erg = mysqli_query( $link, $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysqli_error());
}
while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC))
{
$text = $zeile['largeimage'];
$text = $zeile['link'];
$text = $zeile['name'];
return $text;
}
}
?>
Ваш перезаписать $test
переменная и просто хранить последние данные name
:
$text = $zeile['largeimage'];
$text = $zeile['link'];
$text = $zeile['name'];
Итак, вы, наконец, хранить в $text
значение в $zeile['name']
,
Если вы хотите просто вернуть эти 3 значения, вы можете, например, создать ассоциативный массив только с этими 3 значениями и вернуть его, что-то вроде;
return [
'largeimage' => $zeile['largeimage'],
'link' => $zeile['link'],
'name' => $zeile['name']
];
а потом обрабатывается как хочешь.
Кроме того, вы возвращаете значение внутри цикла while: ваша функция должна возвращать его после обработки всех данных:
function Amazon($name) {
include('/www/htdocs/drtaarde/inc/config.php'); //Datenbankverbindung herstellen
$sql = "SELECT * FROM d029a62b WHERE asin LIKE '%$name%';";
$db_erg = mysqli_query( $link, $sql );
if ( ! $db_erg ) {
die('Ungültige Abfrage: ' . mysqli_error());
}
$response = [];
while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC)) {
$response[] = [
'largeimage' => $zeile['largeimage'],
'link' => $zeile['link'],
'name' => $zeile['name']
];
}
return $response;
}
Обновить
Вероятно, это не работает, потому что сейчас Amazon
Функция возвращает массив, и перед строкой, так что вы можете кодировать массив в JSON, так что вы получите строку в виде JSON, как [{"largeimage":"largeimagevalue1","link":"linkvalue1","name":"namevalue1"},{"largeimage":"largeimagevalue2","link":"linkvalue2","name":"namevalue2"}]
так что вы должны вернуть что-то вроде:
return json_encode($response);