【问题标题】:display all images which belongs to user显示属于用户的所有图像
【发布时间】:2012-06-11 16:28:36
【问题描述】:

我有四个表:分类、州、城市和 img。我想显示属于唯一 ID(用户)的所有图像。

例如:来自明尼阿波利斯(市)明尼苏达州(州)的用户发布了一条关于销售有 5 张图片的汽车的广告。

我得到了这个查询的一切工作,除了结果是重复每张图片的用户信息。

<?php
$query  = mysql_query("SELECT * FROM classifieds 
    LEFT JOIN  img ON img.classified_id = classifieds.id     
    LEFT JOIN  state ON classifieds.state_id = state.id 
     LEFT JOIN  city ON classifieds.city_id = city.id WHERE id = '".$id."'  AND  

    authorized = '1' 

   ");
   while($row = mysql_fetch_array($query, MYSQL_ASSOC))
   {   
   ?>      

    <div align="center"><a href=' <?php echo $row['image_path']; ?>' rel='lightbox'  

    title='<?php echo $row['title']; ?>' style='text-decoration:none;'> <img 

   src='<?php echo $row['image_path']; ?>' width='150' border='0' />
     </a>
   </div>


   <div class="show_location" style="width:225px; hight:10px; padding-top:20px;"> 

    <span  class='style55'><?php echo $lang['D_STATE']; ?> <span style="color:#06F"> 

   <?php echo $row['statename']; ?></span> </div>

   <div style="width:225px; hight:10px; padding-top:20px;"> <?php echo 

   $lang['D_CITY']; ?><span style="color:#06F"> <?php echo $row['city']; ?></span> 

   </span> </div>

   <?php
   }
   ?>

我在这个网站上查找了一些答案,并尝试分组,但它只返回第一张图片。

谢谢

【问题讨论】:

标签: php mysql


【解决方案1】:

您的“img”表有多个相同“classified_id”的记录。因此,您的查询将为相同的分类 ID 生成多个记录。你有两个选择

  1. 不要在主查询中加入 img 表,而是编写单独的查询以在 while 循环中获取图像。

  2. 使用 'group_concat' 函数来检索图像。但您必须将连接的字符串拆分为图像名称。

试试这个(第一个选项)

<?php
$query  = mysql_query("SELECT * FROM classifieds 
LEFT JOIN  state ON classifieds.state_id = state.id 
LEFT JOIN  city ON classifieds.city_id = city.id WHERE classifieds.id = '" . $id . "'  AND authorized = '1'");

$row = mysql_fetch_array($query, MYSQL_ASSOC);

$get_images_query = "SELECT * FROM img WHERE classified_id = " . $row['id'];
$exec_get_images_query = mysql_query($get_images_query);
while($res_images = mysql_fetch_array($exec_get_images_query))
{   
    ?>
    <div align="center"><a href=' <?php echo $res_images['image_path']; ?>' rel='lightbox' title='<?php echo $row['title']; ?>' style='text-decoration:none;'> <img src='<?php echo $res_images['image_path']; ?>' width='150' border='0' /></a>
   </div>
   <?php
}
?>
<div class="show_location" style="width:225px; hight:10px; padding-top:20px;"><span  class='style55'><?php echo $lang['D_STATE']; ?> <span style="color:#06F"> <?php echo $row['statename']; ?></span></div>
<div style="width:225px; hight:10px; padding-top:20px;"><?php echo $lang['D_CITY']; ?><span style="color:#06F"> <?php echo $row['city']; ?></span></div>

【讨论】:

  • 我尝试了第一个选项,并返回了该表中的所有图像:然后我添加了 GROUP BY img.classified_id 并返回每个广告的一张图片。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 2021-11-03
  • 1970-01-01
  • 2020-06-28
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多