我的代码有问题。。我对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>";
}