如何在php中基于下拉列表检索数据


How to retrieve data based on dropdown list in php?

我的代码有问题。。我对php一无所知,所以如果有人能帮助我,我真的很感激:"(..我正试图根据所选的下拉列表值显示数据库中的数据。我的数据库表中目前有三个数据。然而,我的输出中只显示了一个。我不知道我的代码出了什么问题。有人能帮我吗?.

这是我的代码部门列表.php

Choose Department : 
     <form action="" method="POST">
     <select name="department">
        <option value="" selected="selected">-- Choose department --</option>
       <option value="Information System Department">Information System Department</option>
      <option value="Finance">Finance</option>
      <option value="HR and Administration">HR and Administration</option>
      <option value="Security">Security</option>
        </select>
     <input type="submit" value="Submit" />
    </form>
    </br>
    <table border="1" id="table">
     <tr><th bgcolor="#00CCCC">Department</th>
     <th bgcolor="#00CCCC">Locaion</th>
     <th bgcolor="#00CCCC">Serial Number</th>
     <th bgcolor="#00CCCC">Description of asset</th>
   </tr>
        <?php 
        mysql_connect('localhost','root',"") or die('Error1 '.mysql_error());
        mysql_select_db("ams") or die('error2'.mysql_error());

          if($_SERVER['REQUEST_METHOD'] =='POST')
     { $dep=$_POST['department'];
         $query="SELECT * FROM asset WHERE department= '" . $dep . "'";
         $run=mysql_query($query);
         $numrow = mysql_num_rows($run);

         $row=mysql_fetch_array($run, MYSQLI_ASSOC);
        echo "<tr><td bgcolor='#00FFCC'>".$row['department']."</td><td bgcolor='#00FFCC'>".$row['location']."</td><td bgcolor='#00FFCC'>".$row['serialno']."</td><td bgcolor='#00FFCC'>".$row['desc']."</td></tr>";
    }
    }
    ?>
    </table>

手册:http://www.php.net/mysql_fetch_array

将mysql_fetch_array放入while循环中,以便:

while ($row = mysql_fetch_array($run, MYSQL_ASSOC)) {
   echo "<tr><td bgcolor='#00FFCC'>".$row['department']."</td><td bgcolor='#00FFCC'>".$row['location']."</td><td bgcolor='#00FFCC'>".$row['serialno']."</td><td bgcolor='#00FFCC'>".$row['desc']."</td></tr>";
}

我还怀疑您应该使用MYSQL_ASSOC而不是MYSQLI_ASSOC,因为您使用的是MYSQL而不是MYSQLI。

请注意,mysql将被弃用,因此请使用mysqli。

您必须循环查看结果。

while($row = mysql_fetch_array($run, MYSQLI_ASSOC)){
    echo "<tr><td bgcolor='#00FFCC'>".$row['department']
        ."</td><td bgcolor='#00FFCC'>".$row['location']
        ."</td><td bgcolor='#00FFCC'>".$row['serialno']
        ."</td><td bgcolor='#00FFCC'>".$row['desc']
        ."</td></tr>";
}

尝试使用while循环。

            while($row=mysql_fetch_array($run)){
                echo "<tr>
                        <td bgcolor='#00FFCC'>".$row['department']."</td>
                        <td bgcolor='#00FFCC'>".$row['location']."</td>
                        <td bgcolor='#00FFCC'>".$row['serialno']."</td>
                        <td bgcolor='#00FFCC'>".$row['desc']."</td>
                    </tr>"; 
            }