2011-11-15 45 views
0

Possible Duplicate:
PHP Error: mysql_fetch_array() expects parameter 1 to be resource, boolean givenMysql的取副教授()錯誤

我在PHP新的,需要在下面的代碼一些建議。我得到以下錯誤:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\wd\categories.php on line 42

PHP代碼:

$SQL= "FROM wdccat WHERE caid='$id' 
LEFT JOIN wdcat ON wdccat.caid = wdcat.ccid 
LEFT JOIN wdclient ON wdccat.clid = wdclient.cid"; 
$result = mysql_query($SQL); 

((Line 42)) while ($db_field = mysql_fetch_assoc($result)) { 

echo $str1; 
echo $str2; 
print $row['cid']; 
echo $str3; 
print $row['cid']; 
echo $str4; 
print $row['climage']; 
echo $str5; 
print $row['cname']; 
echo $str6; 
print $row['cid']; 
echo $str7; 
print $row['cname']; 
echo $str8; 
print $row['cid']; 
echo $str9; 
echo $str10; 

} 

任何援助將不勝感激。

錯誤我回聲mysql_error();:得到

你有一個錯誤的SQL語法;檢查與您的MySQL服務器版本相對應的手冊,以便在第2行的'LEFT JOIN wdcat ON wdccat.caid = wdcat.ccid LEFT JOIN wdclient ON wdccat.cl'附近使用正確的語法警告:mysql_fetch_assoc()期望參數1到是資源,布爾在42行提供的C:\ xampp \ htdocs \ wd \ categories.php

+0

檢查你的'$ SQL'是不正確的。 – Rikesh

+0

您的查詢沒有SELECT – SERPRO

回答

0

嘗試丟棄echo mysql_error(),因爲您的查詢出現問題。

可能是因爲你缺少SELECT *

2

您應該檢查的mysql_query()結果錯誤(返回false),例如

$result = mysql_query($SQL); 
if (false === $result) { 
    throw new Exception('Error in SQL query, you have: ' . mysql_error()); 
} 

在你的情況下,查詢的格式不正確;您錯過了SELECT clause

一些進一步的建議;儘快切換到PDO庫並使用bound parameters開始使用parameterised statements。進一步閱讀 - http://forums.whirlpool.net.au/forum-replies.cfm?t=1234522

+0

正好。在運行SQL代碼時,有兩件事情你不能假設:「你的查詢會成功」和「輸入參數永遠不會包含單引號」。 –

0

您的$ SQL是不完整的。它沒有返回的字段。試試:

$SQL= "SELECT wdclient.cid, climage, wdclient.cname FROM wdccat WHERE caid='$id' 
LEFT JOIN wdcat ON wdccat.caid = wdcat.ccid 
LEFT JOIN wdclient ON wdccat.clid = wdclient.cid"; 

這是假設cid, climage, cname來自同一張表。

+0

不,表格wdccat有「id」「caid」「clid」,表格wdcat「ccid」「ccname」「ccdescription」,表格wdclient「cid」「cname」「ctel」「cfax」。 – Boldie

+0

立即檢查。不知道climage ... – CristiC