2011-10-18 13 views
-1

計數功能,我已經得到了statment:使用MySQL中

 $result1=mysql_query(" SELECT COUNT(*) FROM users WHERE user_name='$userName'") or exit(mysql_error()); 

,我想找到的計數是這樣的:

if($row=mysql_fetch_array($result1)) 
    { 
     $userNameResult=$row['COUNT(*)']; 
    } 

我想我沒有這樣做對嗎?還是我?爲什麼我要在統計和行變量中計數(*)?爲什麼我不能把它放在一個?而不是兩個..是這樣做的方式。?是最佳做法

回答

3

你在做什麼工作,但最好在查詢中爲COUNT(*)創建列別名,以便在提取調用中引用它。這實際上只是一個可讀性改進。

$result1=mysql_query(" SELECT COUNT(*) AS userCount FROM users WHERE user_name='$userName'") or exit(mysql_error()); 
//------------------------------------^^^^^^^^ 

if($row=mysql_fetch_array($result1)) 
{ 
    $userNameResult=$row['userCount']; 
} 

你可以做到同樣的事情,而不使用fetch調用所有,如果您修改您的查詢選擇所有行,然後使用mysql_num_rows()。哪種方法更有效率取決於數據庫的內容。

$result1=mysql_query("SELECT user_name FROM users WHERE user_name='$userName'"); 
// Echo the row count... 
if ($result1) echo mysql_num_rows($result1); 
+0

「哪種方法更有效」,我的腳! –

1

你爲什麼不這樣做:

$result1=mysql_query(" SELECT COUNT(*) AS result FROM users WHERE user_name='$userName'") or exit(mysql_error()); 

if($row=mysql_fetch_array($result1)) 
    { 
     $userNameResult=$row['result']; 
    } 
2

它總是容易別名柱像

$result1=mysql_query(" SELECT COUNT(*) AS userCount FROM users WHERE user_name='$userName'") or exit(mysql_error()); 
if($row=mysql_fetch_assoc($result1)) 
{ 
    $userNameResult=$row['userCount']; 
} 

或只使用一個數字數組

$result1=mysql_query(" SELECT COUNT(*) AS userCount FROM users WHERE user_name='$userName'") or exit(mysql_error()); 
if($row=mysql_fetch_row($result1)) 
{ 
    $userNameResult=$row[0]; 
} 
+0

謝謝。好主意。我不知道..嗯..我也可以使用數字數組。我認爲你的答案是最好的 –

+0

沒有對不起Michaels是最好的 –

+0

@Dmitry他的答案有一個非常愚蠢的補充,使其更糟。 –

0
$userNameResult=$row[0]; 

這就是全部

但是,我懷疑它是一個嵌套的查詢,在循環中運行?
您應該在父查詢中使用JOIN獲取該數字。