2016-07-21 77 views
0

我正在尝试从smf数据库中提取最后10个主题,但主题位于两个单独的表格中。如何比较一个或两个查询中的结果?

Subject, Post Time and Message ID in smf_messages. 
Topic ID and Topic First Message in smf_topics. 

我写了这段代码来获取主题,但我不知道如何比较这两个结果。

$result = mysql_query("select subject,id_msg,id_topic from smf_messages"); 
$result2= mysql_query("select id_first_msg from smf_topics"); 
if(mysql_num_rows($result)!=0) 
{ 
    while($read = mysql_fetch_object($result)) 
    { 
     if ($read->id_msg==$read->id_topic) { 
      echo "<a href='../index.php?topic=" . $read->id_topic . "'>".$read->subject."</a><br>"; 
     } 
    } 
+0

你想怎么比较呢? –

+0

你想要做什么?你想搜索来自所有主题的第一条消息吗? –

+0

我想将smf_topics的id_first_msg与smf_messages的id_msg进行比较。 –

回答

0

你可能想下面的查询

select subject, id_msg, id_topic, id_first_msg 
from smf_messages 
left join smf_topics on smf_message.id_msg = smf_topics.id_first_msg 
0

绑定记录在SQL加盟:
select subject id_msg, id_topic, id_first_msg from smf_messages join smf_topics on smf_messages.id_msg = smf_topics.id_topic

0

的MySQL有很多很多的选择,用小谷歌搜索,你可以找到关于left jointuttorial and examples

你要做的拳头事情就是停止使用mysql_ *,并开始使用mysqli_ *或PDO了解sql injections

您的查询应该是这样的。

select smf_messages.subject,smf_messages.id_msg,smf_messages.id_topic from smf_messages left join smf_topics on smf_topics.id_first_msg=smf_messages.id_msg 
0

如果你想要做的,如果没有使用SQL,这是我的解决方案它不是很好,但你可以拥有它是如何工作的想法:

$messages = array(); 
$topics = array(); 

while($readmessage = mysql_fetch_object($resultmessage)) { 
    array_push($messages, $readmessage); 
} 
while($readtopic = mysql_fetch_object($resulttopic)) { 
    array_push($topics, $readtopic); 
} 

foreach ($topics as $topic) { 
    $result = array_search($topic->id_first_message); 
    if($result != true){ 
     //HERE $result IS THE INDEX OF FIRST MESSAGE IF IT IS IN THE MESSAGES ARRAY 
     $messages[$result].id_msg //Access message attributes 
    } 
} 
相关问题