0

私は2つのテーブルを持っています

  • 写真: すべての写真情報を保存します
  • ギャラリー: 店舗の見出しとギャラリーに関する説明

ギャラリーの説明を新しいページにエコーし、そこにあるはずのすべての写真をエコーする必要があります。

しかし、同じであるため、見出しと説明が繰り返され続けます

$row = mysql_fetch_array($result)...

そのギャラリーには、私も必要な写真のセットが複数ありますか?

誰か助けてくれますか、それとも私が漠然としていますか....

$a="SELECT * from gallery where gallery_category=".$gallery_category;
$result = mysql_query($a,$c);
while($row = mysql_fetch_array($result)) {
    echo $row['gallery_name'].'<br>'.$row['gallery_description'].'<br>';
    $sql="SELECT * FROM photos WHERE gallery_id =".$gallery_id." ORDER BY photos_filename";
    $result2 = mysql_query($sql,$c);
    while($row = mysql_fetch_array($result2)) {
        echo'<a rel="example_group" href="../galleries/images/'.$row['gallery_id'].'/'.$row['photos_filename'].'" width="130" height="100"><img src="../galleries/images/'.$row['gallery_id'].'/'.$row['photos_filename'].'" height="150px" alt=""/></a>';
    }
}
4

1 に答える 1

0

実際、コードの書式設定を使用できるように、ここに投稿します。

オプション 1 - ループ内のループ

$headerquery = $db->query("SELECT * FROM tbl1");
while ($headers= $db->fetchNextObject($headerquery )) {
   echo "<table><tr><th>".$headers->GalleryName."</th></tr>"; // open table create header
       $detailquery = $db->query("SELECT * FROM tbl2 WHERE GalleryID=".$headers->ID);
       while ($details= $db->fetchNextObject($detailquery )) {
          echo "<tr><td>".$details->Photo."</td></tr>"; //loop through 2nd table and spit out photos
       }
   echo "</table>"; //close table
}

オプション 2 - セレクターを使用した結合クエリ

$galleryheaderid = 0;
$query = $db->query("SELECT * FROM tbl1 INNER JOIN tbl2 on tbl1.ID=tbl2.GalleryID");
while ($details = $db->fetchNextObject($query )) {
   echo "<table>";
   if ($galleryheaderid!=$details->ID) { //spit out header row if id's don't match
       echo "<tr><th>".$details ->GalleryName."</th></tr>"; //create header
       $galleryheaderid = $details->ID;  //set header id to gallery id so we don't show header a 2nd time
   } 
   echo "<tr><td>".$details->Photo."</td></tr>"; //spit out gallery information even on first row since all rows include photo information

   echo "</table>"; //close table
}

これらのいずれかのようなものは、適切に完了する必要があることは明らかです

于 2013-02-26T13:02:59.497 に答える