2013-06-17 2 views
0

Почему мой раскрывающийся список не заполняется данными таблицы? (Выпадающий список пуст) А используется для отображения данных при выборе элемента в этом выпадающем - это его «VIEW» (пожалуйста, указать ссылку исследования, так что я могу узнать)Почему мой раскрывающийся список не заполняется данными таблицы?

Мой код

<?php 
$con=mysqli_connect("localhost","root","","ismat_db"); 
//check connection 
if(mysqli_errno($con)) 
{ 
echo "Can't Connect to mySQL:".mysqli_connect_error(); 
} 
else 
{ 
echo "Connected to mySQL</br>"; 
} 

//$query = 'SELECT FirstName FROM persons'; 
//$result = mysqli_query($con,$query); 

$query = mysqli_query($con,"SELECT 'FirstName' FROM persons"); 

//print_r($query); 

//echo '<select name="FirstName">'; 
echo "<select name= 'FirstName'>"; 
//while($row=mysqli_fetch_array($result)) 
while($row=mysqli_fetch_array($query)) 
{ 
echo $row; 
//echo "<option value='".$row['FirstName']."'>".'</option>'; 
} 
echo '</select>'; 

?> 
+0

1. Получаете ли вы данные из базы данных? 2. Почему вы не печатаете текст опции: '? – user4035

+0

echo $ row [' FirstName '] – sinisake

+0

@ user4035 - просто попробовал эту строку и получил «FirstName», написанный дважды ... –

ответ

0

Вы были 2 ошибки:

Я указал первый в комментарии: напечатать вариант вы должны использовать этот код:

echo "<option value='". $row['FirstName']."'>".$row['FirstName'] 
. '</option>'; 

Второй в вашем SQL: вы не выбираете поле FirstName из базы данных, а вместо этого - строку «FirstName». Вот почему он печатается дважды, как вы сказали. Используйте SQL, чтобы получить поле:

$query = mysqli_query($con,"SELECT FirstName FROM persons"); 

Кроме того, как правило, люди положить идентификатор записи и не поля, которые могут иметь возможные дубликаты в стоимости в <option>. Итак, я бы использовал:

echo "<option value='". $row['id']."'>".$row['FirstName'] 
. '</option>'; 

Выбор идентификатора из базы данных вместе с именем.

+0

Есть ли точка после людей в $ query. И я попробовал, но получил эту ошибку - mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result, boolean И я изменил первый комментарий - с этим только он показывает первое имя дважды –

+0

@AbbasAnsari Вы можете использовать его без каких-либо точек и кавычек , Я обновил ответ, попробуйте сейчас. – user4035

+0

@AbbasAnsari Да, есть точка, и мой запрос должен работать правильно. Я подозреваю, что вы точно не копировали, что я дал в ответ. Потому что я использовал backquotes, а не прямые цитаты, которые вы использовали. – user4035

0

Попробуйте это:

echo "<option value='".$row['FirstName']."'>".$row['FirstName']."</option>"; 

кажется также, что у вас возникли проблемы с запросом к базе данных. Смените время цикла с нижеследующим и посмотреть, если он работает

if ($result = $mysqli->query($query)) { 

    while ($row = $result->fetch_assoc()) { 
    echo "<option value='".$row['FirstName']."'>".$row['FirstName']."</option>"; 
    } 

$result->free(); 
} 
+0

Что это значит? Я имею в виду «'>», потому что выпадающее меню не пустой, но вместо того, чтобы захватить значение таблицы в столбце «FirstName», он просто говорит FirstName дважды (может быть, дважды, потому что в таблице две записи) –

+0

Это не работает? Код должен помещать $ row [ FirstName '], а также разрешить отображение $ row [' FirstName '] пользователю в форме. С помощью опции выбора вам нужно установить значение параметра, которое будет опубликовано, а также отобразить его к пользователю, который будет выбран. – Cbomb

+0

Положите echo mysqli-> error(), после вашего запрос базы данных, чтобы узнать, получаете ли вы какие-либо ошибки mysqli из вашего запроса. – Cbomb

Смежные вопросы