2013-02-07 61 views
0

大家好我对这个一对多的说法有点问题。我在mysql数据库和文件夹中添加图像,这部分是完美的。但是当我想要展示他们时,这是我的棘手部分。我不知道我创建数据库的方式或代码中的问题在哪里。因此,这里有两个:1 to many mysql statment plus showing images and text

我的两个表是文本和imagess 在文本表: 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个标题+文字。我希望有人能向我解释我的错误在哪里,因为从我阅读的书中看不出这样的事情。

预先感谢您。

+0

SQL查询显然是不正确的,但没有看到你试着用 – Bgi

+0

您可以粘贴该查询的样本输出表的完整结构,我不能纠正它吗? – Techmonk

+0

@Bgi我的桌子是这样的: imagess id INT 11 NOT NULL AUTO_INCREMENT primary; name varchar(50)NOT NULL; title varchar(80)NOT NULL; path varchar(100)NOT NULL; 对于文本表格: text_id - 主要的诠释11非空自动增量; text_field - unique varchar 80 not null; – user2015448

回答

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

?>