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