You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何获取查询结果中指定行的数据(如第4行Maria)

获取指定行号查询结果的两种实现方式

方式一:通过SQL语句直接定位(推荐,效率更高)

直接在SQL中使用LIMIT子句精准获取第N行数据,MySQL里LIMIT的语法是LIMIT 偏移量, 行数,注意偏移量从0开始计数,所以第4行对应的偏移量是3。

实现代码(附带SQL注入防护)

// 先转义特殊字符避免SQL注入
$src_names = mysqli_real_escape_string($conn, $src_names);
$sql = "SELECT * FROM tb_cad WHERE name like '$src_names%' ORDER BY id ASC LIMIT 3, 1";
$query = mysqli_query($conn, $sql);
if($query && mysqli_num_rows($query) > 0){
    $row = mysqli_fetch_assoc($query);
    echo $row['name']; // 输出Maria
}

语法说明

  • LIMIT 3,1:跳过前3行,获取接下来的1行数据,正好对应结果集中的第4行。
  • 必须保留ORDER BY子句,否则数据库返回的行顺序无固定规则,行号会失去意义。

方式二:PHP结果集操作定位

先获取完整查询结果集,再通过PHP的MySQLi函数定位到指定行。

实现代码

$sql = "SELECT * FROM tb_cad WHERE name like '$src_names%' ORDER BY id ASC";
$query = mysqli_query($conn, $sql);
if($query){
    // 将结果集指针移动到第4行(索引从0开始,参数为3)
    if(mysqli_data_seek($query, 3)){
        $row = mysqli_fetch_assoc($query);
        echo $row['name']; // 输出Maria
    }
}

// 另一种简化方式:转成数组后直接取索引
// $resultArray = mysqli_fetch_all($query, MYSQLI_ASSOC);
// echo $resultArray[3]['name']; // 索引3对应第4行

函数说明

  • mysqli_data_seek($result, $offset):将结果集的内部指针移动到指定偏移位置,成功返回true,失败返回false,参数$offset从0开始计数。
  • mysqli_fetch_all($result, $type):把整个结果集转换成数组,MYSQLI_ASSOC表示返回关联数组,之后可通过数组索引直接访问指定行。

内容的提问来源于stack exchange,提问作者Erasmo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:07:03