当前位置: 首页 > 知识库问答 >
问题:

Codeigniter$query->row\u array()SQL$query->result\u array()

谭高峯
2023-03-14

所以我试图从多个表中获得一个单项数据,如itemID、itemSKU等。并显示在视图中。下面我提供的示例项目有三张图片。如果我使用返回$查询-

我的模型

$this->db->join('itemsToCats', 'items.itemID = itemsToCats.itemId','left');
        $this->db->join('categories', 'itemsToCats.catId = categories.ctgID', 'left');
        $this->db->join('itemImg', ' items.itemID = itemImg.itemID', 'left');
        $this->db->select('items.itemID, itemSKU, itemName, itemSDesc, addDate, chgDate, ctgID, ctgName, parentID, itemImg');      
        $query = $this->db->get_where('items', array('items.itemID' => $itemID));
        return $query->row_array();

输出

Array
(
    [itemID] => 521
    [itemSKU] => image part number
    [itemName] => multiple images
    [itemSDesc] => 
    [addDate] => 2018-07-12 16:17:09
    [chgDate] => 0000-00-00 00:00:00
    [ctgID] => 67
    [ctgName] => Pipe Bending
    [parentID] => 46
    [itemImg] => 234-gy_hello1.png
)

如果我使用return$query-

Array
(
    [0] => Array
        (
            [itemID] => 521
            [itemSKU] => image part number
            [itemName] => multiple images
            [itemSDesc] => 
            [addDate] => 2018-07-12 16:17:09
            [chgDate] => 0000-00-00 00:00:00
            [ctgID] => 67
            [ctgName] => Pipe Bending
            [parentID] => 46
            [itemImg] => 234-gy_hello1.png
        )

    [1] => Array
        (
            [itemID] => 521
            [itemSKU] => image part number
            [itemName] => multiple images
            [itemSDesc] => 
            [addDate] => 2018-07-12 16:17:09
            [chgDate] => 0000-00-00 00:00:00
            [ctgID] => 67
            [ctgName] => Pipe Bending
            [parentID] => 46
            [itemImg] => cac1f0ad0720ac05e76fd990de2d309e.png
        )

    [2] => Array
        (
            [itemID] => 521
            [itemSKU] => image part number
            [itemName] => multiple images
            [itemSDesc] => 
            [addDate] => 2018-07-12 16:17:09
            [chgDate] => 0000-00-00 00:00:00
            [ctgID] => 67
            [ctgName] => Pipe Bending
            [parentID] => 46
            [itemImg] => eee779a15e340e2a0f4d0b682e900862.png
        )

)

我想要的是:

Array
(
    [itemID] => 521
    [itemSKU] => image part number
    [itemName] => multiple images
    [itemSDesc] => 
    [addDate] => 2018-07-12 16:17:09
    [chgDate] => 0000-00-00 00:00:00
    [ctgID] => 67
    [ctgName] => Pipe Bending
    [parentID] => 46
    [itemImg] => Array
        (
            [0] => 234-gy_hello1.png
            [1] => cac1f0ad0720ac05e76fd990de2d309e.png
            [2] => eee779a15e340e2a0f4d0b682e900862.png
        )
)

是否有一些SQL技巧可以用来实现数据结构,或者需要修改模型中的结果数据?非常感谢。

共有1个答案

童琪
2023-03-14

希望这将帮助您:

您可以这样修改结果数组

$this->db->join('itemsToCats', 'items.itemID = itemsToCats.itemId','left');
$this->db->join('categories', 'itemsToCats.catId = categories.ctgID', 'left');
$this->db->join('itemImg', ' items.itemID = itemImg.itemID', 'left');
$this->db->select('items.itemID, itemSKU, itemName, itemSDesc, addDate, chgDate, ctgID, ctgName, parentID, itemImg');      
$query = $this->db->get_where('items', array('items.itemID' => $itemID));
if ($query->num_rows() > 0 )
{
  foreach ($query->result_array() as $key => $item) 
  {
    $data['itemID'] = $item['itemID'];
    $data['itemSKU'] = $item['itemSKU'];
    $data['itemName'] = $item['itemName'];
    $data['itemSDesc'] = $item['itemSDesc'];
    $data['addDate'] = $item['addDate'];
    $data['chgDate'] = $item['chgDate'];
    $data['ctgID'] = $item['ctgID'];
    $data['ctgName'] = $item['ctgName'];
    $data['parentID'] = $item['parentID'];

    $data['itemImg'][$key] = $item['itemImg'];
  }
}
//print_r($data);die;
return $data;
 类似资料:
  • 我的文档结构如下(简化): 我想在其中筛选状态为“活动”的报价。有人能帮我看看这个查询是什么样子的吗?

  • Match All Query 最简单的查询,它匹配所有文档 查看 Match All Query QueryBuilder qb = matchAllQuery();

  • 问题内容: 我有一个现有的产品变型方案。 我想创建每个生产时间,数量和变化选项的组合。 我将通过访问产品的数量,生产时间,差异和差异选项来创建选择表单。 table_groups table_days table_quantities table_attributes table_attribute_values 我准备了一个示例架构。但是,我没有得到想要的结果。 SQL小提琴 我做了很多事情:

  • Query是一个抽象类,包含各种实用程序方法,是Lucene在搜索过程中使用的所有类型查询的父级。 Class 声明 (Class Declaration) 以下是org.apache.lucene.search.Query类的声明 - public abstract class Query extends Object implements Serializable, Clon

  • Every GraphQL schema has a root type for both queries and mutations. The query type defines GraphQL operations that retrieve data from the server. Fieldsaction (Action) 动作查询接口 Argument Type Descriptio

  • 问题内容: 我同时使用和。 通常我喜欢将结果作为数组,这就是为什么我主要使用result_array()的原因。 但是我想知道哪种方法更好,在性能方面,哪种方法更有效? 这是我在codeigniter查询中谈论的示例 还是这应该是更好的方法? 也现在我在我的通用模型中使用result_array。 问题答案: Result有一个可选参数,该参数决定返回哪种类型的结果。默认情况下(),它返回一个对象