0

2 つのテーブルを結合する mysql クエリがあり、mysql_fetch_array を使用して結果を連想配列に入れ、while ループを使用して「都市の名前」を表示します。同じクエリで、連想配列の対応する各「都市名」を使用してもう 1 つのクエリを実行し、各都市の対応するタグを表示する必要があります。

$result = mysql_query("select city.city_ID, city.city_name, city.city_page, city_images.cimage_path from       city, city_images where 

city.city_ID=city_images.city_ID");
while ($row = mysql_fetch_array($result)) {
    echo '<div class="Box">';
    echo '<a href="' . $row['city_page'] . '">';
    echo '<img src=" ' . $row['cimage_path'] . ' "  />';
    echo '</a>';
    echo '<div class="imagetext">';
    echo '<a href="' . $row['city_page'] . '">' . $row['city_name'] . '</a>';
    echo '</div>';
    echo '<div class="Inbox">';
    $r = mysql_query("select Tag_Name from tag, city_tag where city_tag.city_ID    =$row                ['city_ID'] and city_tag.Tag_ID=tag.Tag_ID ");
    while ($raw = mysql_fetch_array($r)) {
        echo '<div class="boxtags">';
        echo '</div>';
    }
    echo '</div>';
    echo '</div>';
}

現在の都市に対応するタグが必要です..pls help

4

1 に答える 1

0

必要なクエリは 1 つだけです...

SELECT c.city_ID
     , c.city_name
     , c.city_page
     , ci.cimage_path 
     , t.Tag_Name 
  FROM city c
  JOIN city_images ci
    ON ci.city_ID = c.city_ID
  JOIN city_tag ct
    ON ct.city_ID = c.city_ID
  JOIN tag t
    ON tag.Tag_ID = ct.Tag_ID;
于 2013-07-16T16:11:29.847 に答える