3

SQL に 2 つのテーブルがあり、php でそれらをエコーアウトすると、奇妙な結果が得られます...目的の効果は、テーブルのイントロからイントロをエコーアウトし、テーブルのメッセージからメッセージをエコーアウトして、日付ごとに整理することです。

$result = mysql_query("SELECT intro.user_id, intro.date, intro.message_id, intro.intro FROM intro WHERE user_id = {$uid}
                    UNION SELECT messages.user_id, messages.msg, messages.message_id, messages.date FROM messages
                    ORDER BY date DESC ");




while($row = mysql_fetch_array($result))
  {
  echo  "<p>".getElapsedTime($row['date'])."</p>
  <strong>></strong> <a href=\"outro.php?msg_id=".$row['intro.message_id'].
  "\">".$row['intro'] . "</a><br>";
  }


Intro table

ここに画像の説明を入力

Messages table

ここに画像の説明を入力

ここに画像の説明を入力

ただし、上に表示されているように、この奇妙な結果が得られます。エコーアウトする日付だけの上部は、テーブルからのものmessagesです。なぜこれが起こっているのか、それを修正する方法はわかりません。

4

1 に答える 1

2

あなたのUNIONは台無しです。試す:

SELECT intro.user_id, intro.date, intro.message_id, intro.intro
FROM intro WHERE user_id = {$uid}
UNION
SELECT messages.user_id, messages.date, messages.message_id, messages.msg
FROM messages
ORDER BY date DESC
于 2013-01-29T21:43:55.113 に答える