2013-11-18 3 views
0

Хорошо, у меня есть цикл while, который в основном захватывает данные из базы данных SQL и помещает их в раскрывающееся меню, проблема в том, что для каждого значения создается отдельное раскрывающееся меню. Мне нужно только одно раскрывающееся меню, чтобы отобразить все значения.php while loop, отображающий данные sql неправильно

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
</head> 

<body> 

<?php 

$conn = mysql_connect("localhost","root","")or die (mysql_error()); 

mysql_select_db("assignment_3", $conn); 

$data = "select schoolName from schooltable"; 

$result = mysql_query($data, $conn) or die (mysql_error()); 

while ($row = mysql_fetch_assoc($result)) { 
print "<select>"; 
print "<option value='' disabled='disabled' selected='selected'> Please Select your Undergraduate School </option>"; 
print "<option value='1'>".$row['schoolName']."</option>"; 
print "</select>"; 
} 

?> 

</body> 
</html> 

ответ

2

Вы должны переместить операторы печати для выбора элемента вне цикла в то время:

print "<select>"; 
print "<option value='' disabled='disabled' selected='selected'> Please Select your Undergraduate School </option>"; 
while ($row = mysql_fetch_assoc($result)) { 
    print "<option>".$row['schoolName']."</option>"; 
} 
print "</select>"; 

Чтобы сэкономить еще одну проблему, вам нужно угробить значение атрибута или иначе каждый вариант будут отправлять одинаковое значение, потому что все они установлены на 1. Хотя лучший вариант может быть, чтобы напечатать идентификатор школы вместо:

$data = "select schoolId, schoolName from schooltable"; 

print '<option value="'.$row['schoolId'].'">'.$row['schoolName'].'</option>'; 
1

Каждый раз, когда вы идете по петле снова вы его создать новый HTML элемент. Оно должно быть: Untitled Document

<body> 

<?php 

$conn = mysql_connect("localhost","root","")or die (mysql_error()); 

mysql_select_db("assignment_3", $conn); 

$data = "select schoolName from schooltable"; 

$result = mysql_query($data, $conn) or die (mysql_error()); 
print "<select>"; 
while ($row = mysql_fetch_assoc($result)) { 
print "<option value='' disabled='disabled' selected='selected'> Please Select your Undergraduate School </option>"; 
print "<option value='1'>".$row['schoolName']."</option>"; 
} 
print "</select>"; 
?> 

</body> 
</html> 
0

Вот как это должно выглядеть, также, избегать использования mysql_ префиксами функций. Используйте либо mysqli_ версии OOP MySQLi.

$link = new mysqli($host, $user, $password, $database); // Connect to DB 

$result = $link->query("SELECT `schoolName` FROM `schoolTable`"); 

echo "<select>"; 
echo "<option disabled="disabled" selected="selected">Please Select your undergraduate School</option>"; 

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

echo "</select>";