连接三个表并在两个位置显示信息

时间:2013-03-16 22:47:46

标签: php mysql sections

//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()。我的目标是按order_id顺序按DESC订购每个表格。

1 个答案:

答案 0 :(得分:0)

在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教程”应该有所帮助。