如何根据php中的下拉列表检索数据?

时间:2014-04-11 01:57:42

标签: php html sql

我一直有我的代码问题..我是一个仍然菜鸟与PHP所以我真的很感激,如果有人可以帮助我:'(我试图根据选定的下拉列表值显示数据库中的数据。有三个目前在我的数据库表中的数据..但是,只有一个显示在我的输出..我不知道我的代码是什么错。任何人都可以帮助我..

这是我的代码departmentlist.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>

3 个答案:

答案 0 :(得分:0)

你必须循环结果。

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>";
}

答案 1 :(得分:0)

手动: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。

答案 2 :(得分:0)

尝试使用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>"; 
            }