PHP MYSQL表只显示一行结果

时间:2016-10-26 19:02:00

标签: php html mysql database

我有一个页面,我在URL中使用参数作为我的SQL查询的过滤器。 我从URL参数创建了一个变量:

$station = htmlspecialchars($_GET["station"]);

然后根据是否设置了URL参数来设置条件查询:

if(isset($_GET['station'])) {
    $query = "SELECT * FROM song_of_the_day WHERE station = '$station'";
}
else {
    $query = "SELECT * FROM song_of_the_day WHERE end_date >= CURDATE()";
}
    $result = mysql_query($query) or die(mysql_error());
    $num_rows = mysql_fetch_row($result);

然后我在表格中显示结果:

echo "<table width='758' border='0' cellpadding='10' cellspacing='0' class='myTable'>";
while($row = mysql_fetch_array( $result )) {
echo '<tr>';
echo '<td align="left" width="48">' . $row['station'] . '</td>';
echo '<td align="left">' . date('M j, Y',strtotime($row['end_date'])) . '</td>';
echo '<td width="24" align="left"><a href="edit.php?id=' . $row['id'] . '"><img src="http://yourligas.yourli.com/ad-inventory/edit.png" border="0"></a></td>';
echo '<td width="24" align="left"><a href="delete.php?id=' . $row['id'] . '" data-confirm="Are you sure you want to delete this entry?" ><img src="http://yourligas.yourli.com/ad-inventory/remove.png" border="0"></a></td>';
echo "</tr>"; 
echo '</tbody>';
    } 
echo "</table>";

当ELSE命令使用查询时,查询可以找到,我不依赖于我的SQL中的参数,但是当查询显示URL参数ISSET只有一行时我遇到的问题当有多个行匹配实际数据库中的条件时。有人知道为什么会这样吗?

谢谢

1 个答案:

答案 0 :(得分:0)

在这一行中,您在尝试获取行数时似乎正在消耗第一行数据:

$num_rows = mysql_fetch_row($result);

这将从结果光标中删除第一行。

相反,您可能打算执行以下操作:

$num_rows = mysql_num_rows($result);