重定向给出了错误的结果列表


redirect gives wrong list of results

当结果数量比总损失大一时,正确输入总损失,但从列表中减去一。例如:找到12个结果,但只列出了11个:

    $goto = mysql_fetch_array($query);
$results = mysql_num_rows($query); 
if($results == 1){    
    header('Location: movie.php?id='.$goto['id']);}
echo '<p><h2>Results for search "'.$_GET["search"].'": </h2></p>';
echo '<hr />';
echo "Found ".$total." result(s).</p><br>";
echo '<ol class="list">';

while ($resultado = mysql_fetch_assoc($query)) {
$titulo = $resultado['title'];  
echo '<li>';
$link = 'http://localhost/lab/movie.php?id=' . $resultado['id'];

提前感谢您的帮助。

您需要这样做:

$results = mysql_num_rows($query); 
if($results == 1){    
    $goto = mysql_fetch_array($query);
    header('Location: movie.php?id='.$goto['id']);}
}
echo '<p><h2>Results for search "'.$_GET["search"].'": </h2></p>';
echo '<hr />';
echo "Found ".$results." result(s).</p><br>";
echo '<ol class="list">';
while ($resultado = mysql_fetch_assoc($query)) {

您的代码从一开始就获得第一条记录,如果有多个条目,则循环遍历其余记录——对第一条进行装箱。这样,在您知道需要$goto之前,您不会填充它。

这是因为您正在使用此行上的第一个记录指针:

$goto = mysql_fetch_array($query);

如果在$results == 1条件中移动这一行,则一切都应该正常。

现在,当您进入while循环时,您将从第二条记录上的结果集指针开始。