-2

データベース内に 3 つのテーブルがあり、1_comments、2_comments、3_comments としましょう。PHP で 3 つのテーブルすべての最新の 5 つの投稿を一度に表示し、最新の時間で並べ替えます。私のコードは次のとおりです。

<?php
  $row="";

  $link = mysql_connect("localhost","username","password");
  mysql_select_db("database");
  $query = "SELECT * from 1_comments  ORDER by timestamp DESC limit 5";
  $result = mysql_query($query);

  while($row = mysql_fetch_array($result)) {
    echo "<ul>";
    echo "<li>".$row['comment']."</li>";
    echo "</ul>";
  } 

  mysql_close($link);
?>

そのため、1_comments のコメント行から最新の 5 つの投稿を取得し、それらを最新のタイムスタンプで並べ替えていますが、1_comments、2_comments、および 3_comments を一度に処理できないようです。

4

1 に答える 1

0

すべてのテーブルが同じ構造を持っている場合は、 を使用できますUNION

何かのようなもの:

(SELECT * from 1_comments  ORDER by timestamp DESC limit 5)
UNION
(SELECT * from 2_comments  ORDER by timestamp DESC limit 5)
UNION
(SELECT * from 3_comments  ORDER by timestamp DESC limit 5)
ORDER BY timestamp DESC limit 5

ただし、データベース構造をよく見て、3 つの類似したテーブルを 1 つに減らすようにします。

于 2013-04-19T01:46:09.330 に答える