Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何选择帖子的一个特定图像?[仅使用PHP和MySQL]_Php_Mysql_Select - Fatal编程技术网

如何选择帖子的一个特定图像?[仅使用PHP和MySQL]

如何选择帖子的一个特定图像?[仅使用PHP和MySQL],php,mysql,select,Php,Mysql,Select,我不熟悉php和mysql编程,也不熟悉这个论坛 我想知道,是否有可能选择一个特定的图像后显示。 这些帖子看起来像这样: +-------------------------+ |帖子1:标题1……….| |img1………| |img2………| |img3………| +-------------------------+ +-------------------------+ |帖子2:标题2……….| |img4………| |img5………| |img6………| +----------------

我不熟悉php和mysql编程,也不熟悉这个论坛

我想知道,是否有可能选择一个特定的图像后显示。 这些帖子看起来像这样:

+-------------------------+
|帖子1:标题1……….|
|img1………|
|img2………|
|img3………|
+-------------------------+

+-------------------------+
|帖子2:标题2……….|
|img4………|
|img5………|
|img6………|
+-------------------------+

如何选择例如“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>
);
创建表格帖子(
id\u post int(11)非空自动增量主键,
post_title varchar(100),
post_descr varchar(100)
); 创建表格图像(
id\u img int(11)非空自动增量主键,
img_文件varchar(100),
img_标题文本(100),
post\u id int(11)非空引用post(id\u post)
);
这就是我显示帖子所有图片的方式:

$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'];
   }
 }
$resultx=mysqli_query($db,“从post_id=“.rowx['id_post'])的图像中选择img_文件、img_标题);
如果(mysqli_num_行($resultx)>0){
while($rowx=mysqli\u fetch\u数组($resultx)){
回声“;
echo$rowx['img_title'];
}
}
而且它对它应该做的事情非常有效,但再一次:
如何选择“Post1”中的“img3”进行回显?

在我的示例中是否可能?

在您的示例中,要获得单个图像,可以通过多种方式完成:

1-您可以修改查询以在结果中仅获取一个图像,如下所示:

$resultx = mysqli_query($db, "SELECT img_file, img_title FROM images WHERE post_id = " .$rowx['id_post'] . " LIMIT 1");
$rowx = mysqli_fetch_array($resultx);
echo "<img src='../folder_image_uploads/".$rowx['img_file']."' >";
echo $rowx['img_title'];
$rowx = mysqli_fetch_all($resultx, MYSQLI_ASSOC);
echo "<img src='../folder_image_uploads/".$rowx[0]['img_file']."' >";
echo $rowx[0]['img_title'];
2-或者您可以排除while循环,只获得一行,如下所示:

$resultx = mysqli_query($db, "SELECT img_file, img_title FROM images WHERE post_id = " .$rowx['id_post'] . " LIMIT 1");
$rowx = mysqli_fetch_array($resultx);
echo "<img src='../folder_image_uploads/".$rowx['img_file']."' >";
echo $rowx['img_title'];
$rowx = mysqli_fetch_all($resultx, MYSQLI_ASSOC);
echo "<img src='../folder_image_uploads/".$rowx[0]['img_file']."' >";
echo $rowx[0]['img_title'];
$rowx=mysqli\u fetch\u数组($resultx);
回声“;
echo$rowx['img_title'];
3-或者您可以使用mysqli_fetch_all函数代替mysqli_fetch_数组,一次获取多维数组中的所有结果,然后使用该数组中的索引访问特定图像,如下所示:

$resultx = mysqli_query($db, "SELECT img_file, img_title FROM images WHERE post_id = " .$rowx['id_post'] . " LIMIT 1");
$rowx = mysqli_fetch_array($resultx);
echo "<img src='../folder_image_uploads/".$rowx['img_file']."' >";
echo $rowx['img_title'];
$rowx = mysqli_fetch_all($resultx, MYSQLI_ASSOC);
echo "<img src='../folder_image_uploads/".$rowx[0]['img_file']."' >";
echo $rowx[0]['img_title'];
$rowx=mysqli\u fetch\u all($resultx,mysqli\u ASSOC);
回声“;
echo$rowx[0]['img_title'];

您可以正确地从数据库中获取文章的图像,但目前无法很好地处理结果,但有一个解决方案。首先,您希望获取当前帖子的所有图像,然后使用它执行“神奇的工作”(图像滑块)。为此,您还应该修改您的查询,因为当前du是查询中缺少的
,其中
,您正在为每个帖子选择所有图像

$result=mysqli_查询($db,“从帖子中选择*);
while($row=mysqli\u fetch\u数组($result)){
回声“;
echo$row['post_title'];
回声“;
//仅获取分配给此特定帖子的图像
$resultx=mysqli_query($db,“从图像中选择img_文件、img_标题,其中post_id=“.$row['id_post']);
如果(mysqli_num_行($resultx)>0){
//以数组形式获取所有图像
$images=mysqli\u fetch\u all(mysqli\u ASSOC);
$imageCount=count($images);//将派上用场
$复选框='';
$imagesString='';
$dots='';
对于($i=0;$i<$imageCount;$i++){
//创建复选框
$checkbox.=sprintf(“”,$i,($i==0?’选中“:”);
//图像分割
$imagesString.=sprintf(“”,$i);
//形象
$imagesString=sprintf(“”,$images[$i]['img_file']);
//上一步和下一步-按钮
$imagesString.=sprintf('‹;',($i==0?$imagescount:$i-1));
$imagesString.=sprintf(“›;”,($i==$imageCount?0:$i+1));
$imagesString.=sprintf(“”);
$dots.=sprintf(“”,$i,$i);
}
echo$复选框。$imagesString.“$点。”;
}
回声“;
}

注意:对于n张图片,您仍然需要动态生成CSS。

一篇文章中图片的顺序/整个事情是否重要?如果是这样的话,你应该用数字来标记单个图像,表示它们在文章中的顺序。然后,你可以选择一篇文章的第二张图片。你可以在我的第一个问题中看到我完整的“display.php”:图片将以“post_id”保存在“images”表中。每个帖子中可以有多个图像,但我想集成一个图像滑块。对于每个“导航点”,我需要调用1个图像,否则每个导航点都会有相同的图像。图像滑块的设计灵感来自。他还有一支密码笔:。最酷的是,它完全没有JS.A,我知道你想做什么,让我写一个答案。
应该是代码笔中的内容吗
?谢谢你的详细回答。我将尝试在我的代码中实现它,并让您知道,如果它起作用的话。我的主要Div使用-->$imagesString.=sprintf(“”);它有什么用途?当我禁用此字符串时,我的主div再次正常。啊,它来自“slide_img”div。hmmbut此字符串在激活时引用我的主div