2012-09-14 6 views
-1

결과 수가 1보다 많으면 총 손실이 올바르게 입력되지만 목록에서 1을 뺍니다. 예 : 결과가 12 개 있지만 목록에 11 개만 표시됩니다.redirect가 잘못된 결과 목록을 표시합니다.

$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']; 

감사합니다. 이 라인에서 첫 번째 레코드 포인터를 사용하고 있기 때문에 그것은이다

+0

'$ total'은 어디에 설정합니까? – andrewsi

+0

@andrewsi $ goto는 쿼리에서 반환 된 연관 배열입니다. 그러나 $ total은이 코드 블록에서 정의되지 않은 것으로 보입니다. – thatidiotguy

+0

@thatidiotguy - 내가 게시 한 직후에'$ goto'를 보았고, 내 수치에서 그것을 숨기기 위해 내 코멘트에서 삭제했습니다. – andrewsi

답변

0

: 당신은 안쪽이 줄을 이동하면

$goto = mysql_fetch_array($query); 

$results == 1 조건, 모든 문제가 해결됩니다.

지금 while 루프가 생기면 결과 집합 포인터가 이미 두 번째 레코드에 시작됩니다. 그런 다음 레코드의 나머지 통해 반복하고,

$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)) { 

귀하의 코드는 시작에 첫 번째 레코드를 얻고, 더 이상의 항목이 있다면 - :

+0

고마워요! –

1

당신은 같은 것을 할 필요가 첫 번째 것을 binning. 이 방법을 사용하면 필요할 때까지 $goto을 채우지 않을 것입니다.

+0

감사합니다 !! 이제 제대로 작동합니다. –

+0

이제 새로운 문제가 생깁니다. 예를 들어 결과가 5 개 이상이고 한 페이지 당 한도 및 다음 페이지가 하나의 결과 만 표시되면 나열되지 않고 결과가 하나 인 것처럼 표시됩니다 명단을 적어 봐. –