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>
解决方案
一个简单的布尔变量可以区分第一行:
$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.
}
}
推荐阅读
- javascript - 在浏览器中用于存储和搜索巨大 JSON / Dict 类型对象的数据结构
- python - 为什么以下 Python 3 语句返回“True”?---> '' 在 'abc'
- python - 寻求解释 async with/for 的优点
- python - 如何在 Python 中的方法之间传递变量?
- servicenow - 在 Servicenow 中使用更新集时的标准开发实践
- php - 使用 ReactJS 作为前端,PHP 作为后端获取后端数据
- botframework - 如何通过 REST API 为连接到 Microsoft Teams 频道的机器人获取机器人 ID 和用户 ID
- python-3.x - Python N-Queen 解决方案说明
- javascript - 如何使用 sinon 存根非对象函数
- okta - 如何在没有回调的情况下获得 OKTA 隐式响应(桌面应用程序)