0

クラシファイド、ステート、シティ、img の 4 つのテーブルがあります。一意の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の複数のレコードを生成します。ここには2つのオプションがあります

  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 に答える