所以我有以下数据库表名为“relacionproveedorfamilia”
-----------------------------
| idProveedor | idFamilia |
-----------------------------
| 5 | 1 |
-----------------------------
| 5 | 2 |
-----------------------------
| 6 | 2 |
-----------------------------
我使用一个函数,我提供idProveedor的值,它应该返回一个idFamilia值属于提供的idProveedor的数组。
例如,这是获取idProveedor = 5
的所有idFamilia的查询SELECT idFamilia FROM relacionproveedorfamilia WHERE idProveedor = 5;
查询结果为:
---------------
| idFamilia |
---------------
| 1 |
---------------
| 2 |
---------------
我正在尝试将查询结果放入数组中,因此我可以在视图中显示内容。
在我的模型Proveedormodel中,我有以下功能,我通过检查本网站中的其他类似问题进行编码。
public function obtenerIdFamiliaProveedor($idProveedor){
$query = $this->db->select('idFamilia')->from('relacionproveedorfamilia')->where('idProveedor', $idProveedor);
$arrayFamilias = array();
while($row = mysql_fetch_assoc($query)){
$arrayFamilias[] = $row;
}
return $arrayFamilias;
}
但在我看来,我收到错误消息:
Message: mysql_fetch_assoc() expects parameter 1 to be resource, object given
我该如何解决这个问题?
答案 0 :(得分:4)
您正在将codeigniter Query构建器类与mysql_函数混合使用。你为什么这样做?
您必须更改代码:
while($row = mysql_fetch_assoc($query)){
到此:
foreach ($query->result_array() as $row)
您需要在查询结尾处添加get
方法:
$query = $this->db->select('idFamilia')->from('relacionproveedorfamilia')->where('idProveedor', $idProveedor)->get();