Моя задача состоит в том , чтобы в раскрывающемся списке показывались те детали, которые лежат в таблице , но на деле получаю пустой список, вот мой код
<?php
require("connect.php");
$query = "SELECT n_det FROM pmib6411.p";
$details = pg_fetch_all(pg_query( $dbconn, $query));
foreach($details as $pp):?>
<option value="<?=$pp['n_det']?>"><?=$pp['n_det']?></option>
<?php endforeach?>
Если это важно , то Субд - PostgreSQL 9.3.10
Я не работал с БД PostgreSQL, но по документации pg_fetch_all возвращает многомерный массив такого вида
Array
(
[0] => Array
(
[id] => 1
[name] => Fred
)
[1] => Array
(
[id] => 2
[name] => Bob
)
)
Поэтому вам нужно будет сделать так
<?php
//...
$details = pg_fetch_all(pg_query( $dbconn, $query));
$data = '';
foreach($details as $pp){
foreach($pp as $value){
$data .= '<option value="'.$value['n_det'].'">'.$value['n_det'].'</option>';
}
}
//...
?>
<select><?php echo($data) ?></select>
Либо, если pg_query возвращает такой же объект, как mysqli_query, то можно сделать просто
<?php
//...
$details = pg_query( $dbconn, $query );
$data = '';
foreach ($details as $pp){
$data .= '<option value="'.$pp['n_det'].'">'.$pp['n_det'].'</option>';
}
//...
?>
<select><?php echo($data) ?></select>
А лучше всего перед и при использовании foreach
проверяйте массивы и объекты функцией print_r
. Так вы будете знать, сколько вложенностей в вашем массиве и вообще есть ли данные в массиве...
Предыдущий ответ пока не удаляю.
Попробуйте так, чтобы увидеть, где у вас ошибка
<?php
require("connect.php");
$query = "SELECT n_det FROM pmib6411.p";
if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, $query);
}
$result = pg_get_result($dbconn);
if (!pg_result_error || pg_result_error == ''){
$details = pg_fetch_all($result);
//тут ваш цикл и все, что нужно
} else {
echo pg_result_error($result);
//так вы увидите, где ваша ошибка...
}
?>
Подробнее о pg_result_error читайте в документации. В вашем случае условие возможно должно быть изменено, т.к. при ошибке не связанной с параметром $result
вернется FALSE, а если ошибки нет, то вернется пустая строка (if(pg_result_error == ''){...}
)
Попробуйте так вывести в option
function getOption($details){
$data = '';
foreach ($details as $value){
$data .= '<option value="'.$value['n_det'].'">'.$value['n_det'].'</option>';
}
return $data;
}
А в <select><?php echo(getOption($details))?></select>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть мини сайтик django+ajax, когда я пытаюсь сделать обычный редирект, он не делается)
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме
Задача собственно такая: Имеется основное поле ввода TextField surnameNamePatronymicID - принимает ФИО, имеется кнопка Button fillButtonAction - именуемая "заполнить"...