[英]loop within loop in PHP MySQL
我在MySql中创建了两个表,一个表保存了博客内容,另一个表保存了博客ID和不同的图片路径。 我在一个postID中保存了多张图片。 现在,我试图同时获取图片和博客文章,但无法正常工作。 下面的代码...
blogposts.php
<?php
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($conn,"SELECT * , upload_data.FILE_NAME from blog_posts LEFT JOIN upload_data ON blog_posts.postID=upload_data.postID ; ");
while($row = mysqli_fetch_array($result))
{?>
<div class="b-slider j-smallslider" data-height="382">
<ul><?php
if (!empty($FILE_NAME)) {
$result = mysqli_query($conn,"SELECT * from upload_data where postID=postID ; ");
while($row = mysqli_fetch_array($result))
{?>
<li data-transition="3dcurtain-vertical" data-slotamount="12">
<img data-retina src="articles/user_data/<?php echo( htmlspecialchars( $row['FILE_NAME'] ) ); ?>">
</li> <?php }} ?>
</ul>
</div>
<div class="b-blog-one-column__info">
Title : <a href="#" class="f-more"><?php echo( htmlspecialchars( $row['postTitle'] ) ); ?></a>, <a href="#" class="f-more"><?php echo( htmlspecialchars( $row['postCat'] ) ); ?></a>
<span class="b-blog-one-column__info_delimiter"></span>
Tag : <a href="#" class="f-more">Nllam</a>
<span class="b-blog-one-column__info_delimiter"></span>
<a href="#" class="f-more f-primary"><i class="fa fa-comment"></i>12 Comments</a>
</div>
<?php } ?>
问题是我无法获取照片。 :(
使用此查询
$result = mysqli_query($conn,"SELECT blog_posts.* , upload_data.FILE_NAME from blog_posts,upload_data WHERE blog_posts.postID=upload_data.postID");
然后使用print_r()函数打印结果,并检查其获取结果与否。
SELECT blog_posts.*, group_concat(upload_data.FILE_NAME) FROM `blog_posts`
LEFT JOIN upload_data on blog_posts.postID = upload_data.postID
GROUP BY blog_posts.postID
像这样尝试,如果您有图片,您将获得帖子行数和逗号分隔的文件名。 然后应用逻辑以显示结果。 您需要的任何帮助。 别问我。
希望这项工作;
$post_id = 1337;
$conn = new PDO(......); //get connection
$conn->query('SET group_concat_max_len = 4096;');
$query = "SELECT bp.* ,
(SELECT GROUP_CONCAT(ud.FILE_NAME SEPARATOR ',')
from upload_data ud where ud.postID=bp.postID) as files
FROM blog_posts bp
WHERE bp.postID=:post_id ;";
$result = $conn->prepare($query);
$result->bindParam(":post_id", $post_id);
$result->execute();
//don't really need while for one row but oh well
while($row = $result->fetch()){
$files=$row['files'];
$files = empty($files) ? [] : explode(',', $files);
?>
<div class="b-slider j-smallslider" data-height="382">
<ul>
<?php foreach ($files as $file){?>
<li data-transition="3dcurtain-vertical" data-slotamount="12">
<img data-retina src="articles/user_data/<?php echo( htmlspecialchars( $file ) ); ?>">
</li>
<?php } ?>
</ul>
</div>
<div class="b-blog-one-column__info">
Title : <a href="#" class="f-more"><?php echo( htmlspecialchars( $row['postTitle'] ) ); ?></a>, <a href="#" class="f-more"><?php echo( htmlspecialchars( $row['postCat'] ) ); ?></a>
<span class="b-blog-one-column__info_delimiter"></span>
Tag : <a href="#" class="f-more">Nllam</a>
<span class="b-blog-one-column__info_delimiter"></span>
<a href="#" class="f-more f-primary"><i class="fa fa-comment"></i>12 Comments</a>
</div>
<?php } ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.