php - 如何从单个 mysql 查询中选择第一行然后选择其他行?

标签 php mysql

我可能遗漏了一些明显的东西,我怎样才能返回我需要的结果?看看这个简单的例子:


$fetch_image = "SELECT image_url FROM table"; //returns about 10 rows
$stmt_img = $db->prepare($fetch_image);
$stmt_img->execute();
$stmt_img_result = $stmt_img->get_result();

while ($row_img = $stmt_img_result->fetch_assoc()) {
     $image = $row_image['image_url'];
     echo 'Image url: '.$image.'<br>'; //this will echo out 10 times.
}

以上代码遍历所有 10 行。如何返回结果集中的第一行,然后返回其他 9 行?

编辑:我正在尝试创建一个图像预览器,以便第一张图像显示为占位符/主图像,然后其他 9 行显示为缩略图,如下所示:

<div class="sp-wrap">
            <a href="images/1.jpg">
                <!-- This would be the placeholder/main/first image from the mysql result set -->
                <img src="images/1_tb.jpg" alt="">
            </a>
            <!-- In real life these would be dynamically generated -->
            <a href="images/3.jpg"><img src="images/3_tb.jpg" alt=""></a>
            <a href="images/4.jpg"><img src="images/4_tb.jpg" alt=""></a>
            <a href="images/5.jpg"><img src="images/5_tb.jpg" alt=""></a>
            <a href="images/6.jpg"><img src="images/6_tb.jpg" alt=""></a>
        </div>

最佳答案

一个简单的 bool 变量可以区分第一行:

$first_row = true;

while ($row_img = $stmt_img_result->fetch_assoc()) {
     if ($first_row) {
         echo 'the first row';
         $image = $row_image['image_url'];
         echo 'Image url: '.$image.'<br>';
         $first_row = false;
     } else {
         $image = $row_image['image_url'];
         echo 'Image url: '.$image.'<br>'; //this will echo out 9 times.
     }
}

关于php - 如何从单个 mysql 查询中选择第一行然后选择其他行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55122546/

相关文章:

php - 在 phpunit laravel-4 中使用 json POST 测试特定元素

php - HTTP 错误 : curl ERROR: 27: SSL: couldn't create a context in Heroku

mysql - 如何毫无问题地执行大量 SQL 查询?

mysql - 当案例类和对象名称相同时,slick 2 的 Scala 问题

php - JQuery append 没有按预期进行

php - ftp_fget() 返回文件不存在的警告...避免警告而不更改错误报告级别

php - Laravel 5 在请求失败时返回模型数据

mysql - 获取 A 列中具有公共(public)值且 B 列中具有特定值的所有行

python sql转义正斜杠不起作用

mysql - 使用随机唯一编号更新每一行中的一列