Почему это не извлекает никаких данных?

#php #mysql

#php #mysql

Вопрос:

 <?php
require_once('inc/dbc1.php');
$pdo = new PDO('mysql:host=###;dbname=#####', $username, $password);
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sth = $pdo->prepare('
    SELECT name
    FROM Department
    ;');
$sth->execute(array(
    $pID
));
?>
<div id="popup_name" class="popup_block">
    <h2 style="padding:0; margin:0;">Add a:</h2><br>
    <form action="inc/add_p_c_validate.php" method="post"> 
    Professor<input type="radio" name="addType" value="Professor" />
    amp;nbsp;amp;nbsp;Course<input type="radio" name="addType" value="Course" /> 
    <br><br>Name: <input type="text" name="name" /><br> 
    Department: <select id='deptName' name='deptName'>

    <select name="deptName">
    <?php
    while($row = $sth->fetch(PDO::FETCH_ASSOC)) {echo "<option>".$row['name']."</option>";}

    ?>
    </select>
  

Это не выдает никакой ошибки, просто не показывает выпадающий список с какой-либо опцией в нем. Я пробовал использовать запрос phpmyadmin, и он возвращает все названия отделов…

Вывод для выпадающего списка (ничего) : dd

Кто-нибудь?

Комментарии:

1. Просто небольшая подсказка по улучшению: если вы не используете заполнители в запросе, удобнее использовать PDO::query() вместо PDO::prepare() PDO::execute()

2. @user700070: посмотрите документацию?

3. @user700070 Просто ради любопытства, попробуйте $data = $sth->fetchAll(); print_r($data); и посмотрите, печатает ли что-нибудь.

Ответ №1:

 Department: <select id='deptName' name='deptName'>
  

При первом выборе вы не закрыли его и не предоставили никаких опций. Удалите этот выбор первым, и второй выбор сработает.