下拉列表为空

nav*_*100 0 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); 
            ?> 
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 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>";   
    }
  }
Run Code Online (Sandbox Code Playgroud)

UPDATE

添加一个空的默认选项.确保其value属性不是您要从数据库中检索的属性.

<select name="vers"> 
  <option value='-1'>Choose an option...</option>
Run Code Online (Sandbox Code Playgroud)