[英]mysql select distinct query in PHP
$sql = "SELECT DISTINCT Branch FROM student_main";
$result = mysql_query($sql);
$row_num = mysql_num_rows($result);
$rows = mysql_fetch_array($result);
echo "<select name='Branch'>";
for($i=0;$i<=$row_num-1;$i++){
echo "<option value='".$rows[$i]."'>".$rows[$i]."</option>";
}
echo "</select>";
echo "<input type='submit' Value='submit' />";
echo "</form>";
我正在嘗試使用上面的代碼為我的表單創建一個下拉列表。 但它不起作用。 “分支”列中有3個不同的值,但在下拉列表中,它只顯示一個值(第一個),后兩個顯示為空值。
但是當在echo $ row_num中時,它顯示3。
這意味着它取出了三行,但是為什么它沒有顯示在下拉列表中。
如果我在phpmyadmin中運行相同的查詢,它會顯示正確的答案,並返回3個不同的分支值。
您需要使用以下內容循環查詢:
$sql = "SELECT DISTINCT Branch FROM student_main";
$result = mysql_query($sql);
echo "<select name='Branch'>";
while($rows = mysql_fetch_array($result)){ // should probably use mysql_fetch_assoc()
echo "<option value='".$rows['Branch']."'>".$rows['Branch']."</option>";
}
echo "</select>";
echo "<input type='submit' Value='submit' />";
echo "</form>";
你需要為每一行mysql_fetch_array()
。 該函數返回只有一行的關聯數組。 只需將它包含在echo語句上方的for循環中。
編輯: mysql_fetch_array()
實際上返回一個具有關聯索引和編號索引的數組(默認情況下)。 不過,您可以繼續以相同的方式使用它。
你應該做這樣的事情:
$sql = "SELECT DISTINCT Branch FROM student_main";
$result = mysql_query($sql);
echo "<select name='Branch'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='".$row[0]."'>".$row[0]."</option>";
}
echo "</select>";
echo "<input type='submit' Value='submit' />";
echo "</form>";
mysql_fetch_array僅將當前數據集作為數組返回,並將內部指針向前移動。 您需要反復調用mysql_fetch_array
來獲取所有結果。
while ($row = mysql_fetch_array($result)) {
echo "<option value='".$row['Branch']."'>".$row['Branch']."</option>";
}
使用while循環的循環中存在問題:
while($rows=mysql_fetch_array($result)){
echo "<option value='".$rows[$i]."'>".$rows[$i]."</option>";
}
嘗試這個
您真正需要的是學習如何使用模板。
但似乎Stackoverflow絕對不是一個可以學習專業網站開發方式的地方。
先獲取您的數據
$select = $array();
$sql = "SELECT DISTINCT Branch FROM student_main";
$res = mysql_query($sql) or trigger_error(mysql_error().$sql);
while($row = mysql_fetch_array($res)) $select = $row[];
然后在模板中使用它
<form>
<select name='Branch'>
<? foreach($select as $row): ?>
<option value="<?=htmlspecialchars($row['Branch'])?>">
<?=htmlspecialchars($row['Branch'])?>
</option>
<? endforeach ?>
</select>
<input type='submit' Value='submit' />
</form>
mysql_fetch_array
只會返回第一行...
在這里查看詳細信息:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.