从查询结果到关联数组 Codeigniter
From Query Result to Associative Array Codeigniter
我正在编写一个新的 class 来处理我的数据库,我真的很想实现一些我通常在编程时执行的自定义功能。
这些功能之一是可以从查询中获取两个字段,如下所示:
SELECT brandId,brandName FROM Brands;
结果是一个关联数组索引为我的 brandId
并且值为 brandName
.
这是我到目前为止尝试过的方法,但应用程序似乎卡住了,无法产生任何错误消息,只是加载不完
function getColHash($query){
$output = array();
while ($result = $this->query($query)->result()) {
$output[$result[0]] = $result[1];
}
return $output;
}
一些提示将不胜感激
$result = $this->query($query)->result();
执行查询并将所有结果提取到 $result
。只要查询 returns 任何行,在像这样的 while 循环条件下执行它将是无限的。
你可以先得到结果,然后迭代它们来生成你的输出。另外,it looks like result()
returns an array of objects,所以您可能需要 result_array()
。
$results = $this->query($query)->result_array();
foreach ($results as $result) {
$output[$result[0]] = $result[1];
}
我不确定 Codeigniter returns 是否会生成具有数字索引和字符串索引的数组,因此您可能需要设置 $result = array_values($result)
才能引用 $result[0]
和$result[1]
.
我推荐你使用:
$result = $this->db->query($query);
然后做:
foreach ($result->result() as $row) {
echo $row->brandId;
}
您可以阅读文档以获取有关查询结果的更多信息。
这里是文档:https://www.codeigniter.com/user_guide/database/results.html
我正在编写一个新的 class 来处理我的数据库,我真的很想实现一些我通常在编程时执行的自定义功能。 这些功能之一是可以从查询中获取两个字段,如下所示:
SELECT brandId,brandName FROM Brands;
结果是一个关联数组索引为我的 brandId
并且值为 brandName
.
这是我到目前为止尝试过的方法,但应用程序似乎卡住了,无法产生任何错误消息,只是加载不完
function getColHash($query){
$output = array();
while ($result = $this->query($query)->result()) {
$output[$result[0]] = $result[1];
}
return $output;
}
一些提示将不胜感激
$result = $this->query($query)->result();
执行查询并将所有结果提取到 $result
。只要查询 returns 任何行,在像这样的 while 循环条件下执行它将是无限的。
你可以先得到结果,然后迭代它们来生成你的输出。另外,it looks like result()
returns an array of objects,所以您可能需要 result_array()
。
$results = $this->query($query)->result_array();
foreach ($results as $result) {
$output[$result[0]] = $result[1];
}
我不确定 Codeigniter returns 是否会生成具有数字索引和字符串索引的数组,因此您可能需要设置 $result = array_values($result)
才能引用 $result[0]
和$result[1]
.
我推荐你使用:
$result = $this->db->query($query);
然后做:
foreach ($result->result() as $row) {
echo $row->brandId;
}
您可以阅读文档以获取有关查询结果的更多信息。
这里是文档:https://www.codeigniter.com/user_guide/database/results.html