2016-01-17 71 views
2

我已經做了一個查詢來選擇每個用戶的最後日期。它在phpmyadmin中工作,但是當我想在PHP中使用mysqli_query()執行它時,它不會返回任何內容,甚至不會發生錯誤。SQL查詢在phpmyadmin中工作,但不在php中

代碼:

select * from table t inner join (select User_ID, max(Date) as MaxDate from table group by User_ID) tm on t.User_ID = tm.User_ID and t.Date = tm.MaxDate 

如果你有任何想法,爲什麼請讓我知道:)

編輯 的PHP代碼:

$id = $_SESSION["ID"]; 
    $SqlQuery = "SELECT * from 'tablename' t inner join (select 'User_ID', max('Date') as 'MaxDate' from 'tablename' group by 'User_ID') tm on 't.User_ID' = 'tm.User_ID' and 't.Date' = 'tm.MaxDate'"; 
    $Result = mysqli_query($link, $SqlQuery) or die ("not possible to execute query: $sql on $link"); 

    if ($Result->num_rows > 0) { 
    while($row = $Result->fetch_assoc()) { 
     echo "<br> id: ". $row['Sick_ID']. " - UserID: ". $row['User_ID']. "- Reason " . $row['Reason'] . "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 
+0

想必'table'是不是真正的表名,或者這將在兩地失敗。您應該可以在問題中顯示php代碼;問題可能在那裏。 –

+0

$ query =「SELECT persons.lastname,persons.firstname,orders.orderno」。 「FROM persons」。 「INNER JOIN訂單」。 「ON orders.o_id = persons.p_id」; – varunkumar

+0

顯示您的其他mysqli_query()相關代碼。 – scaisEdge

回答

2

添加模式所有者前綴到選擇查詢。它通常在PHP上執行mysql查詢時發生。

Select * from data.table_name as t1 inner join data.table_name_2 as t2 ..... 

更好,如果:

Select data.t1.id, data.t2.name from data_table_name as t1 ..... 
+0

謝謝,我didn不認爲這會有所作爲,但它的工作:D – DubstepsantaHD

+1

@DubstepsantaHD - 如果這是錯誤,你不應該猜測。如果你問,mysqli擴展會告訴你確切的問題。 –

相關問題