0

こんにちは、この 1 対多のステートメントに少し問題があります。私はmysqlデータベースとその部分が完璧なフォルダに画像を追加しています。しかし、それらを表示したいときは、それが私のトリッキーな部分です。データベースの作成方法やコードのどこに問題があるのか​​ わかりません。したがって、ここに両方があります:

私の 2 つのテーブルは text と imagess です。テキスト テーブル内: text_id - primary text_field - unique

imagess テーブル: id - プライマリ ネーム タイトル パス

私のコードはこれです:

     <?php

     $result = mysql_query("SELECT * FROM text text_id, imagess id WHERE (text_id=id AND text_field=title) ");

     while($row = mysql_fetch_assoc($result)){
     echo '<br>№'.$row['text_id'].'<br>';

     echo''.$row['title'].'<br>'
     .$row['text_field'];

     echo'<br><img src="'.$row['path'].'?url='.$row['path'].'/>';
     }

     ?>

私の目標は、1 つのタイトル + テキストを 2 ~ 3 個の画像で表示する方法を学ぶことです。私が読んでいる本からはそのようなことはないので、誰かが私の間違いがどこにあるかを説明してくれることを願っています.

前もって感謝します。

4

1 に答える 1

1

1対多の関係では、「1」の複数回の出現を無視する必要があります。また、外部キーで imagess テーブルに参加する必要があります。クエリにエラーがあります。「FROM text text_id」は、text_id という名前のテキストにエイリアスを作成することを意味します。

<?php
 $currentTextId = -1;
 $result = mysql_query("SELECT * FROM text, imagess WHERE (text.text_id=imagess.text_id) ORDER BY text.text_id");

 while($row = mysql_fetch_assoc($result)){
     if($row['text_id']!=$currentTextId){
         $currentTextId=$row['text_id']
         echo '<br>№'.$row['text_id'].'<br>';
     }

     echo''.$row['title'].'<br>'.$row['text_field'];
     echo'<br><img src="'.$row['path'].'?url='.$row['path'].'/>';
 }

 ?>
于 2013-02-07T10:41:17.587 に答える