2011-04-22 108 views
12

我有這個疑問在PHP中使用:如何在PHP中獲取select count(*)查詢的結果?

mysql_query("select count(*) from registeredUsers where email=".$_SESSION["username"]); 

當我使用echo打印出來的結果,沒有東西打印出來。上述聲明的返回值究竟是什麼?

+0

它返回一個'resource',你需要在另一個函數中使用它。如果你想得到結果考慮使用[mysql_fetch_array()](http://www.php.net/manual/en/function.mysql-fetch-array.php)。將mysql_query的結果傳遞給這個函數。 – Khez 2011-04-22 17:29:42

回答

13

您的代碼不包含任何獲取語句。而另一個答案指出,你需要單引號$_SESSION["username"]

$result = mysql_query("select count(*) from registeredUsers where email='{$_SESSION['username']}'"); 

// Verify it worked 
if (!$result) echo mysql_error(); 

$row = mysql_fetch_row($result); 

// Should show you an integer result. 
print_r($row); 
+0

單引號拯救生命!使用它們,你幾乎沒有機會犯你的代碼中的錯誤。語法熒光筆已經適合:D – Khez 2011-04-22 17:32:13

+0

您的語法需要在那裏做一點工作。 '我的結果= mysql_query(「select count(*)from registeredUsers where email ='{$ _ SESSION ['username']}'」);' – 2011-04-22 17:32:47

+0

我知道 - 我已經在保存後修復了額外的雙引號。 – 2011-04-22 17:34:51

0

計數查詢將始終返回一個值,如果沒有記錄返回,則爲0;如果記錄與記錄相匹配,則計數查詢將高於0

它至少應打印出0,查詢您發佈方式:

Get the number of records where the email address is equal to the session username

這可能沒有什麼意義,你的意思做where username = ".$_SESSION["username"]或類似的東西?

+0

多數民衆贊成在我的想法,但我試圖用回聲打印它,沒有打印,爲什麼? – user722769 2011-04-22 17:27:49

+0

@用戶如果您向我們展示您的代碼,我們可以計算出爲什麼 – 2011-04-22 17:28:13

0

您可能想要回顯查詢本身以確定它是否返回了您所期望的。

2

您需要周圍的會話變量單引號中查詢

$result = mysql_query("SELECT COUNT(*) 
         FROM registeredUsers 
         WHERE email = '".$_SESSION['username']."' "); 
+0

假設$ _SESSION ['用戶名']不是數字 – Brett 2011-04-22 17:30:38

+1

這可能是一個安全的假設,因爲它被比較的列被稱爲'email' – 2011-04-22 17:31:43

+1

我試圖成爲幽默 – Brett 2011-04-22 17:34:48

0

的mysql_query()返回用來從結果集信息的資源。使用諸如mysql_fetch_array()之類的函數從結果集中檢索行。在這種情況下,只會有一行。

-2

嘗試將它轉換爲字符串,然後回顯它。作爲一個int,0將顯示爲空字符串。

+0

這是不正確的,你可以通過執行:'php -r'echo 0,「\ n」;''看到。 'echo(int)0;'輸出字符串'0'。 – 2011-04-22 17:34:08

+0

你說得對。有趣。下次發生這種情況時,我將不得不多加關注。 – alexantd 2011-04-22 17:44:41

10

mysql_query返回結果資源。你可以用mysql_result

$res = mysql_query("select count(*) from registeredUsers where email='".mysql_real_escape_string($_SESSION["username"])."'"); 
echo mysql_result($res,0); 
+0

這工作完美。謝謝你的帖子。 – Baxter 2012-09-26 16:37:22

0

讀取結果應該給你誰擁有您所提供的參數來此查詢的電子郵件地址registere用戶量。 (如果給定的電子郵件地址已經爲另一個用戶註冊,可能是檢查。) 如果電子郵件地址尚未註冊,則會返回一個空白字段。 (這可能是爲什麼沒有得到你的情況打印出來的原因。與您確定的是數據庫中的電子郵件地址試試看。)

0
$resultemp = mysql_query("select count(*) AS count from registeredUsers where email='{$_SESSION['username']}'"); 

// Verify mySQL Query Rresult 

if (!$resultemp) echo mysql_error(); 

// Convert mySQL Result for PHP 

$counter=mysql_fetch_assoc($resultemp); 
$counter=$counter['count']; 

// Print Total Employees 

echo $counter; 
0

您需要使用mysql_fetch_array()的返回值在用戶定義的變量中。然後必須打印返回的值。

$result=mysql_query("select count(*) from registeredUsers where email='{$_SESSION['username']}'") 
$COUNT_NUMBER=mysql_fetch_array($result); 
echo "<br>1.Count=" .$COUNT_NUMBER[0];