2013-05-21 33 views
0

我有一个新闻表。mysql - 设计一个表格,可以有多个值的列

id | title | text | date | image 
---------------------------------------------------------- 
1  HI  R u ok? 5/5/2013 image1.jpg 
2 Good bye Bye Bye 6/6/2013 image2.jpg, image3.jpg 

而且每一个新的可以有更多的图像,任何数量的图像。 我试图在一列中存储几个图像(如示例),但我不知道如何显示它像任何新闻网站。

Title 
Text 
Images 
Date 

我怎么能做到这一点与foreachwhile

+1

您需要可以复制在第二行中的所有数据(与第二图像,或将其与外键归到第二个表返回到该表 – Lucas

+0

和ISN有没有另一种方式来做到这一点? – wemakenever

+1

我强烈建议使用'图像'表来存储每个图像的URL和新闻它属于的ID。 –

回答

2

最佳做法是使用第二个表格,在该表格中使用外键指向当前表格的ID以及图像的图像路径。

+0

如果我这样做: select news.title,news.text,news.date,images.image from news, images where news.id = images.id_new 我得到了重复的消息 – wemakenever

+0

是的,请查看本教程如何加入两张表。 http://www.w3schools.com/sql/sql_join_inner.asp。内连接的提示是将其放在括号内。这使得sql命令更具可读性和可理解性。 – Flipbed

0

假设您希望在同一位置添加所有图像(而不是在文本中内联),您只需获取所需的所有记录,然后使用PHP的explode()分割多个值,功能:

http://php.net/manual/en/function.explode.php

0
$My_SQL=mysql_query("select * from tbl_name where id=2"); 
while($array=mysql_fetch_array($My_SQL)){ 
$title=$array["title"]; 
$text=$array["text"]; 
$date=$array["date"]; 
$images=$array["images"]; 
} 
$image_arr=explode(',',$images); 

Now all you images are available in array elements 
相关问题