2012-10-25 43 views
0

我是新來的,而且很新的PHP。我已經做了一些尋找解決問題的方法,但是我發現的案例都與我的相似。mysql_fetch_assoc()期望參數1是資源。具體行

我試圖數據庫值送入一個HTML下拉框,但我從我的數據庫需要非常具體的行。

大氣壓我的代碼看起來是這樣的:

$query ="SELECT Email FROM circle WHERE Circle_num=$circle_num"; 
    $query_get = mysql_query($query,$conn); 
    if(!$query_get) { 
    die("Unable to execute query $query"); 
    } 

    echo "<select name='circle_users'>"; 
    while ($temp = mysql_fetch_assoc($query_get)) { 
     echo "<option value='".$temp['Email']."'>"; 
     $temp_email = $temp['Email']; 
     $temp_query = "SELECT firstname, lastname FROM user WHERE email=$temp_email"; 
     if(!$temp_query) { 
      die("Unable to execute query $temp_query"); 
      } 
     $get_temp_query = mysql_query($temp_query,$conn); 
     $temp2 = mysql_fetch_assoc($get_temp_query); 
     echo $temp2['fistname']." ".$temp2['lastname']."</option>"; 
     } 
    } 

很抱歉的壞變量名。我有點急於完成這一點。

+0

你必須寫else語句,而不是出狀態代碼,以便您可以輕鬆地得到了問題 – Hkachhia

+0

@Harry吧'die's如果病情經過,所以沒有強制添加'else'。 –

+0

@AlvinWong我知道,但這不是一個錯誤處理的方式,所以我建議他。 – Hkachhia

回答

3
$temp_query = "SELECT firstname, lastname FROM user WHERE email=$temp_email"; 
if(!$temp_query) { 
    die("Unable to execute query $temp_query"); 
} 
$get_temp_query = mysql_query($temp_query,$conn); 

你正在測試的查詢字符串這裏,請求mysql_query沒有結果。
和查詢似乎沒有=> $ get_temp_query是假的=>expects parameter 1 to be resource, boolean given

+0

非常感謝。 我發現這是非常容易錯過小東西的時候,你是新來的PHP,並在幾個小時相同的代碼一直盯着。 –

+0

要詳細說明@ VolkerK答案的最後部分,可能是您的SQL有問題。從看你的代碼我猜,這是因爲你沒有將$ temp_email封裝在單引號中。 –

+0

是的,這是主要問題。 @Xyon很友善地向我指出這一點。 –

2

我覺得

$temp_query = "SELECT firstname, lastname FROM user WHERE email=$temp_email"; 

或許應該

$temp_query = "SELECT firstname, lastname FROM user WHERE email='$temp_email'"; 

你從FETCH_ASSOC得到的錯誤指示你的查詢沒有成功執行。

+0

謝謝你的幫助。 這是被拼寫錯誤的代碼中存在的主要問題,以及一個變量名之一。 –

相關問題