我的下拉列表显示为空。我不确定我的查询是否返回任何记录。如何确定我的查询是否返回任何结果?这是我的代码。请告诉我。我坚持这个问题。
<?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);
?>
答案 0 :(得分:5)
使用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>
答案 1 :(得分:1)
尝试使用MySql Workbench
等工具直接针对数据库运行查询SELECT state_id, state_code FROM states
我怀疑没有结果。
更新:鉴于预计会有50个结果...您可以尝试使用此版本进行微小更新,并报告您可以看到的任何警告或错误。
<?php
use error_reporting(E_ALL | E_STRICT); // Development use only!
$link = mysql_connect("localhost:3306", "root", "root") or die ('Error connecting to mysql' . mysql_error());
mysql_select_db("mydb");
$sql = "SELECT state_id, state_code FROM states;";
$result = mysql_query($sql) or die(mysql_error());
?>
<p>
<select name="vers">
<?php
while($row = mysql_fetch_array($result)) {
echo '<option value="' . $row['state_id'] . '">' . $row['state_code'] . '</option>';
}
?>
</select>
</p>
<?php
mysql_close($link);
?>
答案 2 :(得分:0)
如何查看我的查询是否返回任何结果?
在数据库服务器上而不是通过PHP运行查询,看看它是否返回任何结果。如果您使用MySQL共享主机,许多主机提供了一个phpmyadmin接口,允许您运行SQL命令。
答案 3 :(得分:0)
您可以使用mysql_num_rows了解$result
答案 4 :(得分:0)
首先,您应该检查表格“状态”。如果它是空的,那么您的代码是正确的。例如,您可以使用PhpMyAdmin - http://www.phpmyadmin.net。使用phpMyAdmin执行查询