连接三个表和显示信息在两个位置
问题描述:
//Table One {news}
Id1 | subject1 | url1 | source1
//Table Two {blog_news}
order_id | type | id1 | id
//Table Three {blog}
id | name | subject | url
//SQL query
SELCET nf.*, fnb.*, b.id, b.name, b.subject, b.url FROM news AS nf JOIN blog_news AS fnb ON nf.id1=fnb.id1 JOIN blog AS b ON fnb.id=b.id
//Display Code
if(($i = 0; $i <= 5; ++$i)&&(fnb.type' ==1)){
//Order the result by 'order_id'
//Table Display Code
<table>
<tr>
<td width='250px' valign='middle' align='left'>
<font size='-2'>
<a herf='” . $_GET['b.url'] . “'>
<b>” . $_GET ['b.subject'] . “</b>
</a>
</font>
</td>
<td width='100px' valign='middle' align='right'>
<font size='-2'>
<a herf='” . $_GET['b.url'] . “'>
<b>” . $_GET ['b.name'] . “</b>
</a>
</font>
</td>
</tr>
</table>
}endif
我试图完成的,是在两个领域使用类似于{//display}
代码部分的代码连接三个数据库表一起,显示的结果是什么。连接三个表和显示信息在两个位置
我试过了可能用不同的方法来完成这个任务。
我试图在php中使用while循环来显示结果,并在while循环开始之前收到mysql_fetch_error()
。我的目标是也有每张桌以DESC
的顺序排列。
答
在MySQL中组织数据要容易得多。
试试这个:
SELECT nf.*, fnb.*, b.id, b.name, b.subject, b.url
FROM news nf
JOIN blog_news fnb ON nf.id1 = fnb.id1
JOIN blog b ON fnb.id = b.id
WHERE fnb.type = 1
ORDER BY fnb.order_id DESC
LIMIT 5
,并采取看看如何MySQL的ORDER BY作品。
如果您不知道如何在PHP中与MySQL进行接口,则可以在您最喜爱的搜索引擎上快速搜索“MySQL和PHP教程”。
如果你的问题是因为你的标题摘要,你需要认识到,MySQL的查询结果只是一个暂时的事情。从来没有一次保存超过1行,除非你a)缓冲结果(存储行数 - 例如存储数组),或者b)使用某些输出缓冲,否则不能返回到已经经历的行意味着,当你处理你的表格记录时,你会准备你想要在你的页面上看到较低的页面部分 - 例如。而不是'print $ row ['x'];''你会做'$ buffer。= $ row ['x'];'等待时间到了:'print $ buffer;'。 – Martina 2013-03-16 23:03:28