我不熟悉php和mysql编程,也不熟悉这个论坛。我想知道,是否有可能选择一个特定的图像后显示。这些帖子看起来是这样的:+
uajslkp61#
-----++
nxagd54h2#
要在您的示例中获得单个图像,可以通过多种方式进行:1-您可以修改查询以仅在结果中获得一个图像,如下所示:
$resultx = mysqli_query($db, "SELECT img_file, img_title FROM images WHERE post_id = " .$rowx['id_post'] . " LIMIT 1");
2-也可以排除while循环,只得到一行,如下所示:
$rowx = mysqli_fetch_array($resultx); echo "<img src='../folder_image_uploads/".$rowx['img_file']."' >"; echo $rowx['img_title'];
3-或者您可以使用mysqli\u fetch\u all函数代替mysqli\u fetch\u数组,一次获得多维数组中的所有结果,然后使用该数组中的索引访问特定图像,如下所示:
$rowx = mysqli_fetch_all($resultx, MYSQLI_ASSOC); echo "<img src='../folder_image_uploads/".$rowx[0]['img_file']."' >"; echo $rowx[0]['img_title'];
j5fpnvbx3#
-----+|职位1:标题1||图像1||img2||img3|+
5us2dqdw4#
-----+|职位2:标题2||img4||img5||图6|+
hmae6n7t5#
你正确地从你的数据库中为你的文章获取图像,但是目前你不能很好地处理结果,但是有一个解决方案。首先,你想获取当前帖子的所有图片,然后用它做你的“魔术”(图片滑块)。为此,您还应该修改您的查询,因为当前du缺少一个 WHERE 在您的查询中,您正在为每个帖子选择所有图像。
WHERE
$result = mysqli_query($db, "SELECT * FROM posts"); while ($row = mysqli_fetch_array($result)) { echo "<div class=\"post_container\">"; echo $row['post_title']; echo "<div class=\"image_container\">"; // Get only the images assigned to this specific post $resultx = mysqli_query($db, "SELECT img_file, img_title FROM images WHERE post_id = " . $row['id_post']); if (mysqli_num_rows($resultx) > 0) { // get all images as an array $images = mysqli_fetch_all(MYSQLI_ASSOC); $imageCount = count($images); // Will come in handy $checkboxes = ''; $imagesString = ''; $dots = ''; for ($i = 0; $i < $imageCount; $i++) { // Create the checkboxes $checkboxes .= sprintf('<input type="radio" id="i%d" name="images" %s/>', $i, ($i == 0 ? 'checked' : '')); // Div for Image $imagesString .= sprintf('<div class="slide_img" id="img_%d">', $i); // Image $imagesString = sprintf('<img src="../folder_image_uploads/%s">', $images[$i]['img_file']); // Prev & Back - Buttons $imagesString .= sprintf('<label class="prev" for="i%d"><span>‹</span></label>', ($i == 0 ? $imageCount : $i - 1)); $imagesString .= sprintf('<label class="next" for="i%d"><span>›</span></label>', ($i == $imageCount ? 0 : $i + 1)); $imagesString .= sprintf('</div>'); $dots .= sprintf('<label for="i%d" class="dots" id="dot%d"></label>', $i, $i); } echo $checkboxes . $imagesString . "<div id='nav_slide'>" . $dots . "</div>"; } echo "</div></div>"; }
注意:对于n个图像,您仍然需要动态生成css。
2ekbmq326#
-----+
如何选择例如“post1”的“img3”
我有两个多对一关系表:
CREATE TABLE posts (<br> id_post int(11) not null AUTO_INCREMENT PRIMARY KEY,<br> post_title varchar(100),<br> post_descr varchar(100)<br> ); CREATE TABLE images (<br> id_img int(11) not null AUTO_INCREMENT PRIMARY KEY,<br> img_file varchar(100),<br> img_title text(100),<br> post_id int(11) not null REFERENCES posts(id_post)<br> );
我就是这样显示帖子的所有图片的:
$resultx = mysqli_query($db, "SELECT img_file, img_title FROM images WHERE post_id = " .$rowx['id_post']); if(mysqli_num_rows($resultx) > 0) { while ($rowx = mysqli_fetch_array($resultx)) { echo "<img src='../folder_image_uploads/".$rowx['img_file']."' >"; echo $rowx['img_title']; } }
它能完美地完成它应该做的事情,但同样:
如何选择“post1”中的“img3”进行回显
在我的例子里这可能吗?
6条答案
按热度按时间uajslkp61#
-----+
+
nxagd54h2#
要在您的示例中获得单个图像,可以通过多种方式进行:
1-您可以修改查询以仅在结果中获得一个图像,如下所示:
2-也可以排除while循环,只得到一行,如下所示:
3-或者您可以使用mysqli\u fetch\u all函数代替mysqli\u fetch\u数组,一次获得多维数组中的所有结果,然后使用该数组中的索引访问特定图像,如下所示:
j5fpnvbx3#
-----+
|职位1:标题1|
|图像1|
|img2|
|img3|
+
5us2dqdw4#
-----+
|职位2:标题2|
|img4|
|img5|
|图6|
+
hmae6n7t5#
你正确地从你的数据库中为你的文章获取图像,但是目前你不能很好地处理结果,但是有一个解决方案。首先,你想获取当前帖子的所有图片,然后用它做你的“魔术”(图片滑块)。为此,您还应该修改您的查询,因为当前du缺少一个
WHERE
在您的查询中,您正在为每个帖子选择所有图像。注意:对于n个图像,您仍然需要动态生成css。
2ekbmq326#
-----+
如何选择例如“post1”的“img3”
我有两个多对一关系表:
我就是这样显示帖子的所有图片的:
它能完美地完成它应该做的事情,但同样:
如何选择“post1”中的“img3”进行回显
在我的例子里这可能吗?