PHP MYSQL表只显示一行结果


PHP MYSQL Table only display one row of results

我有一个页面,我在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只有一行时,当有多个行与实际数据库中的标准匹配时,我看到的问题从查询中显示出来。有人知道为什么会这样吗?

谢谢

在这一行中,您似乎正在使用第一行数据,同时试图获得找到的行数:

$num_rows = mysql_fetch_row($result);

从结果游标中删除第一行。

相反,你可能想做以下事情:

$num_rows = mysql_num_rows($result);