php - 下拉列表为空

标签 php mysql

我的下拉列表显示为空。我不确定我的查询是否返回任何记录。我如何才能知道我的查询是否返回了任何结果?这是我的代码。请告诉我。我被这个问题困住了。

 <?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/

相关文章:

PHP 按国家/地区阻止网站访问

php - .htaccess modrewrite 破坏了我的表格

PHP & MySQL 在同一页面上包含删除按钮

mysql - 无法添加外键约束错误1215 phpmyadmin

mysql - MySQL 中什么更快? WHERE 子请求 = 0 或 IN 列表

mysql - sql查询以像闹钟一样按时获取冲突

javascript - 如何在数量框中添加增加和减少按钮

php - 如何检索mysql数据库信息

类似于 Wordpress 的 PHP 短 URL

mysql - NodeJS mysql promise 返回未定义