2012-02-17 76 views
0

可能重複:
How do i 「echo」 a 「Resource id #6」 from a MySql response in PHP?來自SELECT COUNT的SQL資源ID 4?

我有一種說法:

 $query1 = mysql_query("SELECT COUNT(author) FROM userpages WHERE `author` = '" . $userid . "'") or die(); 
     echo $query1; 

忽略了驚人的可怕的命名約定的,它只是爲了測試它之前,我牛起來。因爲我實際上沒有從表中獲取數據,我應該能夠迴應聲明不應該我?但是它給了我一個錯誤。

錯誤是:資源ID#4

有什麼建議嗎?

謝謝。

+0

你能提供你收到的錯誤嗎? – Dan 2012-02-17 14:16:54

+0

@DanNewhouse我添加或死()到它,沒有改變的錯誤只是:資源ID#4 – Jack4 2012-02-17 14:18:28

回答

1

http://www.php.net/manual/en/function.mysql-query.php

返回值:

對於SELECT,SHOW,描述,解釋等語句返回的結果集 ,請求mysql_query()成功返回的資源,或 錯誤FALSE。

和:

返回的結果資源應該傳遞給mysql_fetch_array(), 等功能的處理結果表,訪問 返回的數據。

+0

那麼,這是否意味着我必須像mysql_fetch_array那樣放置$ row = data kinda的東西?我嘗試過,但是我不知道數據會是什麼,因爲我沒有檢索任何數據:/ – Jack4 2012-02-17 14:25:34

+0

但是,您正在檢索數據,您正在檢索特定作者的用戶頁數的計數......這是數據以及 – 2012-02-17 14:32:20

+0

你可以這樣做:'$ result = array(); while(false!==($ row = mysql_fetch_assoc($ query1)))$ result [] = $ row;'獲取數據,然後'var_dump($ result);'查看獲取的數據。另外,在你的例子中,在查詢'SELECT COUNT(..)FROM ...'中,只能獲取一行。所以,你可以簡單地執行'$ row = mysql_fetch_assoc($ query1);',然後'var_dump($ row);' – Timur 2012-02-17 14:33:53

1

我認爲,這將是有益的

$query = "SELECT COUNT(author) as cnt FROM userpages WHERE `author` = '" . $userid . "'"; 
echo $query; 
$res = mysql_query($query); 
while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) { 
    print_r($row); 
} 
+0

謝謝!越來越近,我現在得到這個:Array([0] => 5 [COUNT(author)] => 5) – Jack4 2012-02-17 14:27:12

+0

@KubaW請避免if/while/etc中的直接變量賦值。最好使用'while (false!==($ row = mysql_fetch_array($ res)))' – Timur 2012-02-17 14:36:36

+0

我已經改變了一小段代碼,現在就試試。請紅色這個:[function.mysql-fetch-array](http://www.php.net/manual/en/function.mysql-fetch-array.php) – Kuba 2012-02-17 14:39:07

2

的mysql_query返回一個結果資源,您可以通過使用

mysql_fetch_array($query1) 

(或類似)來檢索每條記錄的結果集必須循環。無論查詢是返回1行還是100,000行,原理都是一樣的

請閱讀relevant sections of the manual,詳細解釋了這一點,然後再感覺需要幫助....閱讀手冊是你的朋友!

編輯

while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) { 
    echo $row['COUNT(author)']; 
} 

或更改您的SQL查詢來

$query1 = mysql_query("SELECT COUNT(author) AS authorcount FROM userpages WHERE `author` = '" . $userid . "'") or die(); 

然後

$row = mysql_fetch_array($res,MYSQL_ASSOC)) 

將返回一個數組 '的authorCount'

的索引
echo $row['authorcount']; 
+0

然後也許考慮使用mysqli或pdo而不是可怕地過時mysql – 2012-02-17 14:22:46

+0

啊,謝謝你! PHP手冊真的很難讓我明白,我不知道爲什麼我從來沒有能夠消化任何它:(謝謝,雖然我會通過 – Jack4 2012-02-17 14:27:53

+0

看一看在我已鏈接的頁面上的示例#2 – 2012-02-17 14:31:22