2017-01-11 71 views
0

我們很驚訝我在過去的幾個小時,爲什麼mysqli_num_rows不與SQL查詢"SELECT * FROM table_name"工作好好嘗試的工作,我只是不停收到錯誤NUM_ROWS與「SELECT * FROM表格名」

警告:mysqli_num_rows()預計參數1被mysqli_result,布爾給

我的實際代碼(實際上這是一個有點簡化):

$checkLists = "SELECT * FROM todo_list WHERE group_id=(SELECT group_id FROM user_group WHERE user_id='$user_id')"; 
    $resultCheck = mysqli_query($conn, $checkLists); 
    $numberList = mysqli_num_rows($resultCheck); 

如何從此查詢中獲取行數?我希望有人能夠幫助我,提前致謝!

+0

您的查詢失敗。 echo $ mysqli_error($ conn);''$ resultnumber'後面什麼?另外,這可能是因爲'list'是一個保留字。 – Darren

+0

那麼查詢在我的真實代碼中運行良好,所以請忽略它。正如我已經提到它簡化了@darren – variableUnknown

+0

如果你沒有顯示實際的代碼,我們實際上無法提供幫助。 – Qirel

回答

2

查詢是錯誤的。當子查詢最多返回1行時,您只能使用WHERE column = (subquery)。如果子查詢返回多於1行,則無法將其與=進行比較,您將得到一個錯誤。測試列是否與任何返回的結果匹配的正確方法是使用IN而不是=

但是通常使用JOIN而不是WHERE IN更好。

SELECT DISTINCT t.* 
FROM todo_list AS t 
JOIN user_group AS u ON u.group_id = t.group_id 
WHERE u.user_id = '$user_id'