2013-06-24 4 views
-1

В настоящее время я работаю над школьным проектом. Моя цель - создать динамическую веб-страницу, которая позволяет людям извлекать данные из базы данных. Я хочу создать несколько раскрывающихся ящиков, которые позволят пользователям сузить данные из моей базы данных, которую я создал.Выпадающее поле, заполненное строками mysql php

Например, у меня есть «год» как один столбец в моей базе данных, потому что я собрал данные из нескольких лет. Я хотел бы установить способ для пользователей выбрать конкретный год, используя раскрывающийся список HTML. Как именно я могу кодировать что-то вроде этого с помощью PHP и моей базы данных?

Вот мой код до сих пор, но я не могу никуда с этим справиться.

<select name='year'> 
<?php 
$query = "select distinct year from test order by year"; 

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

?> 
</select> 

С помощью этого кода я получаю раскрывающийся список, но никаких вариантов не задано. Он пуст. Есть идеи? Буду признателен за любую помощь.

+0

Попробуйте использовать {$ row-> год} вместо "$ row-> год.". – Brian

+0

Код неправильный. $ result = $ result-> query ($ query); Откуда вы получили $ result – ejo

+0

возможный дубликат [PHP - сверление данных и циклов с петлями] (http://stackoverflow.com/questions/2562796/php-drilling-down-data-and-looping-with-loops) – hakre

ответ

1

FETCH_ASSOC() возвращает ассоциативный массив, а не объект, должен быть доступен как массив

$query = "select distinct year from test order by year"; 
$result = $result->query($query); 
while ($row = $result->fetch_assoc()) { 
echo "<option value='".$row['year']."'>".$row['year']."</option>"; 
} 
0
<select name='year'> 
<?php 
$query = "select distinct year from test order by year"; 

$result = $result->query($query); 
while ($row = $result->fetch_object()) { 
echo "<option value='".$row->year."'>".$row->year."</option>"; 
} 

?> 
</select> 
0

Чтобы получить доступ к результату, как объекты, которые вы должны использовать fetch_object. Таким образом, ваш цикл должен меняться, как показано ниже:

while ($row = $result->fetch_object()) {

0

Или используйте

$sql=mysql_query("select distinct year from test order by year"); 
while ($row = mysql_fetch_assoc($sql)) { 
    echo "<option value='".$row["year"]."'>".$row["year"]."</option>"; 
}