加入两个while循环以根据日期顺序显示

时间:2015-12-18 10:25:10

标签: php mysql date display

所以我有这个MySQL查询,它基本上只是两个单while个循环运行并显示信息,它的问题是它们显示如下信息:

Test1, Test2, Test1, Test2, Test1, Test2, Test3, Test4, Test3, Test4, etc...

正如您所料。虽然我想要做的是根据它们添加到表中的日期来安排这些结果,所以如果最近添加了一组test 3 and test 4,它将显示为:

test3, test4, test1, test2, test1, test2, test3, test4 etc...

根据日期重新排列这些结果?我知道使用ORDER BY只会按顺序显示每个部分,但有没有办法使用我的代码,我可以将它们混合起来并重新排列date_addeddate_earned

$user_id = $_SESSION['userid'];                 
$sql8 = "SELECT * FROM table1 ORDER BY date_added;";

if ($result8 = $conn->query($sql8)) {

    /* fetch associative array */
    while ($row8 = $result8->fetch_assoc()) {
        printf ("%s (%s)\n", $row8["test1"], $row8["test2"]);
    }
}

$user_id = $_SESSION['userid'];                 
$sql9 = "SELECT * FROM table2 ORDER BY date_earned";

if ($result9 = $conn->query($sql9)) {

    /* fetch associative array */
    while ($row9 = $result9->fetch_assoc()) {
        printf ("%s (%s)\n", $row9["test3"], $row9["test4"]);
    }
}    

1 个答案:

答案 0 :(得分:1)

使用union all

Select * from(
SELECT * FROM table1 
union all
SELECT * FROM table2 
) tab ORDER BY date_added,date_earned