0

答えてくれてありがとう、本当にうれしいです。コードを編集しました。うまく編集したかどうか尋ねたいのですが。:-)

  $result = $sql->query("SELECT * FROM `topic` ;");
                    while($row = $result->fetch_object())
                    {
                    $id=$row->id;
                    $photo=$row->photo;
                    $title=$row->title;
                    $shortinfo=$row->shortinfo;
                    echo"<div id='article'>
                        <a href='reporty.php?page=$id'><div id='article_img'><img src='$photo'/></div></a>
                        <div id='article_text'>
                        <h2>$title</h2>
                        <p>$shortinfo</p>
                        </div>
                        </div>";
4

4 に答える 4

1

新しいクエリが最初のクエリを置き換えているため、2番目のクエリを設定する必要があり$result1ます。そのため、常に1つの結果しか得られません。

$result = $sql->query("SELECT * FROM `topic` ;");
while($row = $result->fetch_object())
{
   $id=$row->id;                     
   echo '<div id="article">
            <a href="';
   echo '.php"><div id="article_img"><img src="';
   $result1 = $sql->query("SELECT `photo` FROM `topic` WHERE id='$id' ;");
   while ($row1 = $result->fetch_array()) {
       echo $row1['photo'];
   }
}
于 2013-01-10T11:46:49.960 に答える
1

$result両方のループで$row同じ変数名が使用されます。

于 2013-01-10T11:47:40.383 に答える
0

$photo_resultや など、読みやすくわかりやすい変数名を使用することをお勧めします$title_result。ループで同じ変数名を使用するため、これで問題も解決します。

パフォーマンスとシンプルさのために、JOINテーブルを作成してみませんか? 次に、1 つのループを持つ 1 つのクエリしかありません。

于 2013-01-10T11:50:48.320 に答える
0

常に適切な変数名を付けてください。あなた$result and $rowはここでほとんどすべての変数を保持しています。

同じメモリ位置が常に更新されます。そのため、古い価値観が失われます (これは 1 年生/PUC 1 年生で学びました)

こうやって、

たとえば、topicテーブルからフェッチしているときに を選択するphotoと、

$topicResultForPhto and$topicPhotoRow`などの変数を使用します。これを全員に行います。

そして、もう1つのエラー、

すでに like を呼び出しSELECT *ており、テーブルのすべてのフィールドがあります。photoなどの他のフィールドから再び呼び出す必要があるのはなぜselect photo from topics whereですか?

于 2013-01-10T11:52:12.510 に答える