0

我有四个表:分类、州、城市和 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
   }
   ?>

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

谢谢

4

1 回答 1

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>
于 2012-06-11T16:43:30.317 回答