如何从while循环中的最后一行获取值?

问题描述:

我想知道为什么while循环不会覆盖$ kid的值?如何从while循环中的最后一行获取值?

$lastrow = //another mysql query to get the id of last row. 

    $kid = 0; 

    $result = mysql_query("SELECT kid....... 

    while(list($kid) = mysql_fetch_row($result)) { 
    ... 
    } 

    echo $kid; 

if ($lastrow != $kid) echo "<a href="/show-more.php">show more results</a>"; 

由于某种原因后while循环$ kid是“” - 空,并且循环不覆盖此值。

+0

你会在循环中增加$ kid吗? – deadlock 2013-03-17 12:41:18

+0

什么发生在列表($ kid)? – ethrbunny 2013-03-17 12:43:46

$kid = 0; 

$result = mysql_query("SELECT kid....... 

while(list($temp_kid) = mysql_fetch_row($result)) { 
    $kid = $temp_kid; 
} 

echo $kid; 

尝试......

+0

不知道为什么这是downvoted ...这显然是一个有效的解决方案(虽然它可以使用一些额外的解释) – knittl 2013-03-17 12:51:33

+0

谢谢,杰伊,它的工作原理。 – user1821484 2013-03-17 13:15:45

while循环结束时的条件首先是falsy(0)。这意味着,$kid将始终具有一个值,该值在循环后评估为false。

东西沿着以下行应该工作:

while($row = mysqli_fetch_row($result)) { 
    $kid = $row['kid']; 
} 

虽然我不知道,如果你正在为您解决问题的正确方法。你想达到什么目的?我认为只从数据库中选择一行会更有意义。