我正在PHP中运行一个while循环,从mysql数据库中选择数据。我怎么知道最后一张唱片是什么,
例如:
$sql="SELECT * from table1 ";
$rs=mysql_query($sql,$conn);
while($result=mysql_fetch_array($rs))
{
echo $result["col1"].' - '.$result["col2"].'<br>';
}然后,当它到达最后一条记录时,我想将它显示如下:
echo 'Last Record: '.$result["col1"].' - '.$result["col2"].'<br>';发布于 2013-11-22 15:14:35
基本上,您需要记录有多少行,然后设置一个计数器。您可以使用mysql_num_rows()来实现这一点。
$sql="SELECT * from table1";
$rs = mysql_query($sql,$conn);
$numRows = mysql_num_rows($rs);
$i = 1;
while($result=mysql_fetch_array($rs))
{
echo ($i == $numRows) ? 'Last Record: '.$result["col1"].' - '.$result["col2"].'<br />' : $result["col1"].' - '.$result["col2"].'<br />';
$i++;
}发布于 2013-11-22 15:13:52
获取返回行的总数并检查,使用标志变量进行循环迭代,并签入循环(如果标志为==总行)
$t=mysql_num_row($rs);
$i=0;
while($result=mysql_fetch_array($rs))
{
$i++;
if($t == $i){
echo "Last Record ";
}
echo $result["col1"].' - '.$result["col2"].'<br>';
}发布于 2013-11-22 15:12:20
您可以简单地使用sql查询本身来获取最后的值,基于您想要的任何排序(或者只使用DESC获取自然顺序的底部):
SELECT * FROM table1
ORDER BY your_column DESC
LIMIT 1;编辑:由于您正在寻找最后一行,您可以使用mysql_num_rows检查
$numrows = mysql_num_rows($rs);
$i = 1;
// in while loop...
if ($i === $numrows) {
// print last result
} else {
// print normal result
}
$i++;
// end while loop本质上,您需要一个计数器来记录您所在的记录,然后在行数与您所在的行号相同的情况下(例如,最后一个)进行写入。
https://stackoverflow.com/questions/20148116
复制相似问题