2013-02-26 49 views
0

如何在我的sql語句中創建Order By?我已經嘗試過這樣的聲明,但這不起作用。每次運行它都會崩潰。是因爲我的$ _GET ['email']?我究竟做錯了什麼?如何在我的SQL語句中創建Order By

$results = $this->EE->db->query(
"SELECT ct.*, t.*, em.*, cd.* 
FROM transactions as t 
Inner JOIN exp_channel_titles as ct on (t.restaurant_id = ct.entry_id) 
Inner JOIN exp_channel_data as cd on (ct.entry_id = cd.entry_id) 
inner join exp_members as em on (t.cardid-10000000 = em.member_id) 
WHERE ct.title = '".$_GET['email']."'ORDER BY t.created DESC"); 
+2

有一個空間之前缺少''ORDER BY'' – fedorqui 2013-02-26 12:18:56

+1

Arrh THX @fedorqui – Zaz 2013-02-26 12:20:10

+0

謹防惡意輸入,你應該sanitase你的輸入或更好,但使用準備好的語句的一些國王。 – comanitza 2013-02-26 12:30:43

回答

0

如評論中所示,您在'ORDER BY'之前錯過了一個空格。

WHERE ct.title = '".$_GET['email']."'ORDER BY t.created DESC"); 
            ^^^ 

WHERE ct.title = '".$_GET['email']." 'ORDER BY t.created DESC"); 
            ^^^^ 

一起:

$results = $this->EE->db->query(
"SELECT ct.*, t.*, em.*, cd.* 
FROM transactions as t 
Inner JOIN exp_channel_titles as ct on (t.restaurant_id = ct.entry_id) 
Inner JOIN exp_channel_data as cd on (ct.entry_id = cd.entry_id) 
inner join exp_members as em on (t.cardid-10000000 = em.member_id) 
WHERE ct.title = '".$_GET['email']." 'ORDER BY t.created DESC"); 
0

shoule是:

$results = $this->EE->db->query(
"SELECT ct.*, t.*, em.*, cd.* 
FROM transactions as t 
Inner JOIN exp_channel_titles as ct on (t.restaurant_id = ct.entry_id) 
Inner JOIN exp_channel_data as cd on (ct.entry_id = cd.entry_id) 
inner join exp_members as em on (t.cardid-10000000 = em.member_id) 
WHERE ct.title = '".$_GET['email']."' ORDER BY t.created DESC"); 

有空間$_GET['email']ORDER BY之間失蹤。

0

使用可讀性獨立變量。

$email = $_GET['email']; 

$query = "SELECT 
       ct.*, 
       t.*, 
       em.*, 
       cd.* 
      FROM transactions as t 
       Inner JOIN exp_channel_titles as ct 
       on (t.restaurant_id = ct.entry_id) 
       Inner JOIN exp_channel_data as cd 
       on (ct.entry_id = cd.entry_id) 
       inner join exp_members as em 
       on (t.cardid - 10000000 = em.member_id) 
      WHERE ct.title = '$email' 
      ORDER BY t.created DESC"; 

$results = $this->EE->db->query($query);