2013-02-03 2 views
0

У меня есть этот PHP-скрипт, который должен заполнить выпадающий список; Я фактически встроил его в элемент, но он не сработал. вот мой сценарий, чтобы четко объяснить мою проблему:Заполните раскрывающийся список через запрос выбора mysql

<select name="cats"> 
    <?php 
    require_once("connection.php"); 
    $rs = mysql_query("select cat_name from category"); 
    $count = 0; 
    while($array = mysql_fetch_array($rs)){ 
    echo "<option>".$array[$count]."</option>"; 
    } 
    mysql_close($con); 
    ?> 

    </select> 

Если вы можете помочь мне определить ошибку, и если это неправильный способ сделать это; что лучший способ. Я был бы благодарен за реализацию. заранее!

+0

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются, и на нем начался процесс [устаревания] (http://j.mp/Rj2iVR). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [** подготовленных заявлениях **] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http: // php. net/mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). –

+0

Я также вижу, что вы готовите переменную count. Если вы используете его как уникальный индекс, не забудьте его увеличить $ count ++; в цикле while –

+0

thx я обнаружил, что я уже пропустил приращение: $ –

ответ

0

В общих чертах это правильный способ сделать это. Я предполагаю, что проблема здесь:

echo "<option>".$array[$count]."</option>"; 

Ваш $count обязательно 0, так что вы всегда будете выводить $array[0], который является первым полем, который выбран (как правило, своего рода ID, но это зависит от структуры таблицы). Это может быть или не быть правильным полем в таблице.

Прежде всего я рекомендую указать точные поля, которые вы выбираете. Например:

select `id`, `text` from `category` 

И затем использовать ассоциативный массив $array, чтобы получить то, что вы хотите, например: $array['id']

+0

Я пробовал все решения, и никто из них не работал :( –

1

изменение:

while($array = mysql_fetch_array($rs)){ 
    echo "<option>".$array[$count]."</option>"; 
} 

к

while($array = mysql_fetch_array($rs)){ 
    echo "<option value='".$array["cat_id"]."'>".$array["cat_name"]."</option>"; 
} 

где cat_id является идентификатором таблицы вашей категории

+0

Я пробовал все решения, и никто из них не работал :( –

0

Я думаю, что нет никаких проблем с вашим кодом, проверьте соединение с базой данных еще раз и попробуйте. Потому что я пытаюсь выполнить код в своем локальном хосте и выберет cat_name в выпадающем списке.

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