0

大家好,我对这个一对多的声明有一点问题。我在 mysql 数据库和文件夹中添加图像,这部分是完美的。但是当我想展示它们时,这是我最棘手的部分。我不知道我创建数据库的方式或代码中的问题出在哪里。所以这里有两个:

我的两个表是 text 和 imagess 在 text 表中: text_id - 主要 text_field - 唯一

在 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'].'/>';
     }

     ?>

我的目标是学习如何用 2-3 张图片显示 1 个标题 + 文字。我希望有人能解释我的错误在哪里,因为从我正在阅读的书中没有这样的事情。

先感谢您。

4

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 回答