我的下拉列表显示为空。我不确定我的查询是否返回任何记录。我如何才能知道我的查询是否返回了任何结果?这是我的代码。请告诉我。我被这个问题困住了。
<?php $link = mysql_connect("localhost", "root", "root");
if (!$link) { die('Could not connect: ' . mysql_error()); }
echo 'Connected successfully';
mysql_select_db("mydb");
$sql = "SELECT state_id, state_code FROM states";
$result = mysql_query($sql) or die(mysql_error());
?>
<p>
<select name="vers">
<?
while($row = mysql_fetch_array($result)){
echo "<option value=\"".$row['state_id']."\">".$row["state_code"]."</option>";
}
?>
</select>
<?
mysql_close($link);
?>
最佳答案
使用 if (!$result)
测试查询的成功或失败,并使用 mysql_num_rows()
验证返回的行数。与 die()
不同,您可以向用户显示更好的错误并可能呈现不同的 HTML,而不是突然退出脚本。
mysql_select_db("mydb");
$sql = "SELECT state_id, state_code FROM states";
$result = mysql_query($sql);
// Instead of die(), use a construct like this for better error handling on your page
if (!$result) {
// query error
}
if (mysql_num_rows($result) === 0) {
// No rows returned
}
else {
// Success! Populate your <select> with <option>s
while($row = mysql_fetch_array($result)){
echo "<option value=\"".$row['state_id']."\">".$row["state_code"]."</option>";
}
}
更新
添加一个空的默认选项。确保它的 value
属性不是您要从数据库中检索到的内容。
<select name="vers">
<option value='-1'>Choose an option...</option>
关于php - 下拉列表为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7795583/