如何选择一个帖子的一个特定图片[[仅使用php和mysql]

uklbhaso  于 2021-06-23  发布在  Mysql
关注(0)|答案(6)|浏览(255)

我不熟悉php和mysql编程,也不熟悉这个论坛。
我想知道,是否有可能选择一个特定的图像后显示。这些帖子看起来是这样的:
+

nxagd54h

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'];
j5fpnvbx

j5fpnvbx3#

-----+
|职位1:标题1|
|图像1|
|img2|
|img3|
+

5us2dqdw

5us2dqdw4#

-----+
|职位2:标题2|
|img4|
|img5|
|图6|
+

hmae6n7t

hmae6n7t5#

你正确地从你的数据库中为你的文章获取图像,但是目前你不能很好地处理结果,但是有一个解决方案。首先,你想获取当前帖子的所有图片,然后用它做你的“魔术”(图片滑块)。为此,您还应该修改您的查询,因为当前du缺少一个 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>&#x2039;</span></label>', ($i == 0 ? $imageCount : $i - 1));
            $imagesString .= sprintf('<label class="next" for="i%d"><span>&#x203a;</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。

2ekbmq32

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”进行回显

在我的例子里这可能吗?

相关问题