Как я могу сравнить результат в одном запросе или двух?

Я пытаюсь получить последние 10 тем из базы данных SMF, но темы находятся в двух отдельных таблицах.

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

Решение

Вы, вероятно, хотите следующий запрос

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 имеет много вариантов, с небольшим поиском Google вы могли найти о left join,
учебник и примеры.

Первое, что вам нужно сделать, это прекратить использовать mysql_ * и начать использовать mysqli_ * или pdo узнать о инъекции sql

Ваш запрос должен выглядеть следующим образом.

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
}
}
0
По вопросам рекламы [email protected]