0

我对会话或数组还不是很好。

这是我到目前为止的内容,但出现错误

警告: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']);
}

任何帮助,将不胜感激。:)

4

2 回答 2

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应该发生在一个类的方法中

于 2012-10-29T18:15:43.763 回答
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_* 扩展已被弃用,您应该改用mysqliPDO

于 2012-10-29T18:09:28.370 回答