首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/SQL查询查找最后结果

问PHP/SQL查询查找最后结果
EN

Stack Overflow用户
提问于 2013-11-22 15:09:41
回答 5查看 1.6K关注 0票数 0

我正在PHP中运行一个while循环,从mysql数据库中选择数据。我怎么知道最后一张唱片是什么,

例如:

代码语言:javascript
复制
$sql="SELECT * from table1 ";
$rs=mysql_query($sql,$conn);
while($result=mysql_fetch_array($rs))
{
echo $result["col1"].' - '.$result["col2"].'<br>';
}

然后,当它到达最后一条记录时,我想将它显示如下:

代码语言:javascript
复制
echo 'Last Record: '.$result["col1"].' - '.$result["col2"].'<br>';
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-11-22 15:14:35

基本上,您需要记录有多少行,然后设置一个计数器。您可以使用mysql_num_rows()来实现这一点。

代码语言:javascript
复制
$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++;
}

不过,您应该注意到,mysql_*()系列函数现在已不再受欢迎。为了安全和长寿,您确实应该使用MySQLi或PDO。

票数 2
EN

Stack Overflow用户

发布于 2013-11-22 15:13:52

获取返回行的总数并检查,使用标志变量进行循环迭代,并签入循环(如果标志为==总行)

代码语言:javascript
复制
$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>';
}

mysql

票数 1
EN

Stack Overflow用户

发布于 2013-11-22 15:12:20

您可以简单地使用sql查询本身来获取最后的值,基于您想要的任何排序(或者只使用DESC获取自然顺序的底部):

代码语言:javascript
复制
SELECT * FROM table1
ORDER BY your_column DESC
LIMIT 1;

编辑:由于您正在寻找最后一行,您可以使用mysql_num_rows检查

代码语言:javascript
复制
$numrows = mysql_num_rows($rs);
$i = 1;
// in while loop...
    if ($i === $numrows) {
        // print last result
    } else {
        // print normal result
    }
    $i++;
// end while loop

本质上,您需要一个计数器来记录您所在的记录,然后在行数与您所在的行号相同的情况下(例如,最后一个)进行写入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20148116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档