2013-07-28 59 views
0

我真的不知道爲什麼這不起作用。我試圖做的只是獲取我的數據庫中的所有電子郵件,然後回顯它們,但無論我嘗試什麼mysql_fetch_array都無法正常工作。這不是SQL查詢不起作用,因爲我添加了if語句,如果它不工作,就會死掉,不僅如此,而且我已經使用了PHPMyAdmin,並且完成了完全相同的查詢,並且它工作正常。PHP mysql_fetch_array()根本不工作

這是我的代碼

<?php 
$dbc = mysql_connect('localhost', 'root', ''); //host, username, pass 
$db = mysql_select_db('habbo', $dbc); 

if(!$dbc || !$db) 
    die("Unknown Error."); 

$sql = "SELECT `email` FROM `logininfo` WHERE `id` = '1'"; 
mysql_query($sql); 

if(!$sql) 
    die(mysql_error()); 

while($row = mysql_fetch_array($sql)) 
    echo $row['email'] . " "; 

?>

所以,我不知道是怎麼回事,我的兩個錯誤陷阱的不上來,我的時候我剛得到一個錯誤去的網頁說這

Warning: mysql_fetch_array() expects parameter 1 to be resource, string given on line 14 

我認爲它意味着查詢被打破,但查詢不大,因爲像我剛纔所說,我已經設置了錯誤的陷阱,並在phpMyAdmin試圖查詢,所以它可能XAMPP有什麼問題,或者什麼。我重新啓動了Apache和MySQL,但仍然遇到了同樣的錯誤。

回答

0

$sql實際上是一個字符串,而不是您需要從MySQL訪問結果所需的資源。

您需要存儲mysql_query()的結果,檢查THAT是否爲false,並調用mysql_error(),否則將其傳遞給mysql_fetch_array()

1

您試圖從sql文本中獲取結果,而不是查詢的結果;

$sql = "SELECT `email` FROM `logininfo` WHERE `id` = '1'"; 
$res = mysql_query($sql); 

if(!$res) 
    die(mysql_error()); 

while($row = mysql_fetch_array($res)) 
    echo $row['email'] . " "; 
+0

哦,謝謝,我忘了做,哈哈。多麼簡單的錯誤,謝謝你清理它。 –

0

$sql應該是mysql_query()。也可能添加MYSQL_ASSOC

喜歡的東西:

$result = mysql_query("SOME QUERY"); 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ 
    echo $row['email'] . " "; 
} 
0

你沒有設置mysql_query($sql)功能的結果給一個變量。因此,你在代碼的後半部分使用了一個字符串。

試試這個:

<?php 
$dbc = mysql_connect('localhost', 'root', ''); //host, username, pass 
$db = mysql_select_db('habbo', $dbc); 

if(!$dbc || !$db) 
    die("Unknown Error."); 

$sql = "SELECT `email` FROM `logininfo` WHERE `id` = '1'"; 
$result = mysql_query($sql); 

if(!$result) 
    die(mysql_error()); 

while($row = mysql_fetch_array($result)) 
    echo $row['email'] . " "; 
?>