Доступ к информации из SQL внутри формы - PullRequest
0 голосов
/ 11 декабря 2010

У меня есть запрос, который выглядит примерно так (я знаю, что он уязвим для внедрения SQL, это просто шаблон):

$db = mysql_connect("host","un", "pw"); 
mysql_select_db("db", $db); 

$sql = "SELECT *" 
    . " FROM Student" ;
$result = mysql_query($sql); 
$students = mysql_fetch_assoc($result);
$numRows = mysql_num_rows($result);

Тогда у меня есть эта форма:

<form name="form" id="form" method="post" action="page">
<select name="student" id="student">

<? 
for ($i=0;$i<=$numRows;$i++){
    echo "<option>" . $students['StudentID'] . "</option>";

}

?>


  <option selected="selected">Please select a student</option>
   </select>

Это должно напечатать что-то вроде выпадающего списка со всеми значениями из таблицы в качестве элементов.Тем не менее, я получаю выпадающий список с 6 одинаковыми предметами, в этом случае я получаю 6 идентификаторов учеников, но все они имеют одинаковый идентификатор.У меня есть шесть студентов в БД, и я хотел бы показать каждого из них в качестве опции.Что я делаю не так?

TIA

1 Ответ

4 голосов
/ 11 декабря 2010

Посмотрите на примеры mysql_fetch_assoc.Он вернет только одну запись.Чтобы получить их все, вы должны использовать его в цикле, например:

$students = array();

while(($student = mysql_fetch_assoc($result))) {
    $students[] = student;
}

и позже:

<?php foreach($students as $student): ?>
    <option><?php echo $student['StudentID']; ?></option>
<?php endforeach; ?>

или с циклом for (ноНе требуется, если вам не нужен счетчикHTML и PHP)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...