2012-10-29 85 views
0

我還不是很好,但會話或數組。從Mysql查詢創建會話數組

這裏是我到目前爲止,但我得到一個錯誤

警告:mysql_fetch_array():提供的參數不是一個有效的MySQL結果資源。

這裏是我的代碼:

$checkgroupadmin = $this->db->query("SELECT group_id FROM groupadmin 
    WHERE contact_id = $contactid"); 
while ($adminrow = mysql_fetch_array($checkgroupadmin, MYSQL_ASSOC)) { 
    $_SESSION[group_admin] = array('group'=>$adminrow['group_id']); 
} 

任何幫助,將不勝感激。 :)

+0

你是否使用像codeigniter的PHP框架?如果是這樣,你應該使用結果生成功能。 –

+0

在查詢後添加var_dump($ checkgroupadmin)並顯示結果 –

+0

查詢失敗。總是檢查結果'if(!$ checkgroupadmin)echo mysql_error();' –

回答

0

mysql_fetch_array()返回當前結果的關聯數組,但在您的代碼中,您將只覆蓋每個結果的$_SESSION中的相同值。您可能需要創建自己的結果ID數組,然後將其分配給$_SESSION變量。

// query database 
$checkgroupadmin = $this->db->query("SELECT group_id FROM groupadmin WHERE contact_id = $contactid"); 
// array to hold each group_id 
$result_array = array(); 
// varify that $checkgroupadmin returned results 
if ($checkgroupadmin){ 
    // get results into associative array 
    while ($adminrow = mysql_fetch_array($checkgroupadmin, MYSQL_ASSOC)) { 
     // put the group id into your results array 
     $result_array[] = $adminrow['group_id']; 
    } 
} 
// set results array to the 'group_admin' key in $_SESSION 
$_SESSION['group_admin'] = $result_array; 

請注意mysql_* extensions have been deprecated,你應該使用mysqliPDO代替。

1

警告:mysql_fetch_array():提供的參數不是有效的MySQL結果資源。

你得到你的錯誤,因爲$checkgroupadmin不是mysql_fetch_array實際查詢的資源()要求。

$checkgroupadmin = $this->db->query("SELECT group_id FROM groupadmin WHERE contact_id = $contactid");` 

換句話說,上述面向對象的調用沒有返回一個mysql資源查詢。

爲什麼你將面向對象風格與程序風格混合在一起呢。其次上面的代碼$this>db->query應該發生在一個類的方法