2013-10-31 54 views
0

我有一個PHP代碼就緒,它將從mysql數據庫獲取數據,PHP代碼也將以表格形式顯示數據。按日期排序兩個表格,並在html中顯示輸出<table>

我想達到的目標:

我有一個名爲「計算器」兩代表「客戶」 &「回執」 虛擬數據庫這兩個表都被稱爲「日期」字段與數據類型爲日期也是如此。 full schema here

我想從這些表中選擇的一些條目出現在html表中。 條目應按升序排列。

我曾嘗試和完成:

的數據被取出,並以表格形式顯示成功,但日期明智的排序是部分完成。

output of my result (without php code since jsfiddle doesn't support php)

我已經使用PHP來比較每個表的日期之間的日期,然後顯示相應的數據,我面對

<?php 
     while($kb = mysql_fetch_assoc($customer)){ 
      customer_data($kb); //function which echos <tr>'s of customer table 
       while($cd = mysql_fetch_assoc($reciept)){ //function which echos <tr>'s of reciept table 
        if($cd['date'] <= $kb['date']){ 
        reciept_data($cd); 
        break; 
       } 
      } 
     } 
?> 

問題:

的排序是不完全就像我想要的一樣。 (其中只有一部分按日期遞增)。

鏈接到我的整個項目文件與數據庫架構和樣本數據(剛剛導入的phpmyadmin)以供參考:http://www.mediafire.com/?bcbvkn8uq89ya6n

如果你仍然感到困惑的是什麼樣的輸出我想get.I做了一桌在excel這裏的圖片:image

我很困難,這個問題,因爲幾天。我認爲這是由於我缺乏SQL技能?任何幫助,將不勝感激。

謝謝!

UPDATE:

這是如何使用PHP從表中我拾取數據:

$customer = mysql_query("SELECT * FROM customer WHERE customer_name = '$name' ORDER BY date ASC "); 

$reciept = mysql_query("SELECT * FROM reciept WHERE name = '$name' ORDER BY date ASC"); 

經過一番研究,我碰到它連接兩個SELECT語句的UNION運算符,和我發展此查詢:

SELECT DATE, customer_name, grand_total 
FROM customer 
WHERE customer_name = 'JHON' 
UNION ALL 
SELECT DATE, name, recd_amount 
FROM reciept 
WHERE name = 'JHON' 

但我只能選擇相等的號碼。兩個select語句中的列,以及如何按日期排序?

回答

0

您應該在if語句中使用'=='進行等式比較。'=' 將在工會

$query = " (SELECT DATE, customer_name, grand_total 
FROM customer 
WHERE customer_name = 'JHON') 
UNION ALL 
    (SELECT DATE, name, recd_amount 
    FROM reciept 
    WHERE name = 'JHON') 
    order by customer.Date desc" 

一個幫助鏈接賦值給變量

if($cd['date'] = $kb['date']){ 

if($cd['date'] == $kb['date']){ 

訂購 MYSQL UNION ORDER BY

+0

感謝您的!但是這完全改變了我的輸出,「<=」運算符是我現在使用的運算符,但問題仍然存在。 – user2933671

+0

我以爲你在做平等比較。讓我們試試 –

+0

平等運算符排除「reciept」表的結果。所以我使用「<=」運算符,它給了我在jsfiddle鏈接中獲得的相同結果。 – user2933671

相關問題