2010-10-15 132 views
0

如何從下面的查詢MySQL查詢中使用PHP獲取計數值。PHP編碼問題

這是我的MySQL代碼。

$dbc = mysqli_query($mysqli,"SELECT COUNT(*) FROM((SELECT users_friends.id 
          FROM users_friends 
          INNER JOIN users ON users_friends.user_id = users.user_id 
          WHERE users_friends.user_id = 1 
          AND users_friends.friendship_status = '1') 
          UNION 
          (SELECT users_friends.id 
          FROM users_friends 
          INNER JOIN users ON users_friends.friend_id = users.user_id 
          WHERE users_friends.friend_id = 1 
          AND users_friends.friendship_status = '1')) as friends"); 
+0

?只是'mysql_query'系列的函數? – Matchu 2010-10-15 02:00:36

+0

那裏沒有PHP代碼。您需要解釋如何顯示不能正常工作的PHP代碼,並解釋如果我們要幫助您,它會如何工作。 – 2010-10-15 02:02:46

+0

'mysql_result'可能很有用,否則你可以用別名命名結果,例如使用'mysql_fetch_assoc'來得到它。 – CharlesLeaf 2010-10-15 02:02:50

回答

0
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) { 
    printf("Select returned %d rows.\n", mysqli_num_rows($result)); 

    /* free result set */ 
    mysqli_free_result($result); 

http://us.php.net/manual/en/mysqli.query.php

1

使用SQL_CALC_FOUND_ROWS應該簡化事情:

$dbc = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS users_friends.id 
         FROM users_friends 
         INNER JOIN users ON users_friends.user_id = users.user_id 
         WHERE users_friends.user_id = 1 
         AND users_friends.friendship_status = '1' 
         "); 

然後事後做

$rs = mysqli_query($mysqli, "SELECT FOUND_ROWS()")); 
$rec = $rs->fetch_array(); 
$count = $rec[0]; 

此方法將返回基於m記錄數atch查詢,忽略任何LIMIT語句,而使用$rs->num_rows只會給你實際返回的記錄數。取決於你想要哪一個。

+0

不錯,我還沒有使用過這個手工參考:http://dev.mysql.com/doc /refman/5.0/en/information-functions.html#function_found-rows – deceze 2010-10-15 02:50:12

+0

使用SQL_CALC_FOUND_ROWS效率不高,除非你想對結果進行計數並取出它們,否則使用COUNT(*)函數會好很多。 – Doug 2010-10-15 02:52:22

+1

@Doug如果你有任何有關它的效率的信息我會感興趣的(不是諷刺),但他*是*計數並在他的示例中提取 – 2010-10-15 02:55:15

0

假設你正確連接到MySQL服務器和您的查詢的正確執行,你可以使用下面的代碼:

$values = mysql_fetch_row($dbc); 
$count = $values[0]; 
0

您的查詢應該像SELECT COUNT(*)作爲numThings從xxx

的numThings是什麼,你會在PHP中引用:你在使用連接到數據庫

$result = mysql_query("SELECT COUNT(*) as `numThings` FROM xxx"); 
$row = mysql_fetch_assoc($result); 
$count = $row['numThings'];