将数据库查询中的行放入 CodeIgniter 中的数组中
Posted
技术标签:
【中文标题】将数据库查询中的行放入 CodeIgniter 中的数组中【英文标题】:Getting rows from a database query into an array in CodeIgniter 【发布时间】:2017-08-24 21:28:03 【问题描述】:所以我有以下名为“relacionproveedorfamilia”的数据库表
-----------------------------
| idProveedor | idFamilia |
-----------------------------
| 5 | 1 |
-----------------------------
| 5 | 2 |
-----------------------------
| 6 | 2 |
-----------------------------
我使用一个函数来提供 idProveedor 的值,它应该返回一个数组,其中包含属于提供的 idProveedor 的 idFamilia 值。
例如,这是获取 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
我该如何解决这个问题?
【问题讨论】:
我认为您在核心 php 方面做了很多工作。请浏览 codeigniter 的文档并检查活动记录查询的工作原理。 【参考方案1】:您正在将 codeigniter 查询构建器类与 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();
【讨论】:
这正是我们在使用codeigniter时必须要做的 谢谢,这很有帮助。以上是关于将数据库查询中的行放入 CodeIgniter 中的数组中的主要内容,如果未能解决你的问题,请参考以下文章
如何将发布数据放入 CodeIgniter 中的数组中?帖子项目是数组