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

数组代码点火器从数据库中提取结果

邹普松
2023-03-14

我有一个食物表,在那里我存储分类ID作为coma分开,如下面的图像食物表

我在模型中做了一个方法,它以数组(类别ID)为参数,从参数中获取与数组ID匹配的食物项。

我做了以下查询

if(count($categoryIds) > 0 && count($allergyIds) == 0 ){
    $tempArr = array();
    foreach($categoryIds as $eachCategoryId){
        $sql = "Select food.food_id,food_name,food_image,food_thumbnail,description,food_variations.price as price,is_active
        from food
        join food_variations on food_variations.food_id = food.food_id
        where FIND_IN_SET($eachCategoryId,category_id)
        and food.restaurant_id = $restaurantId
        and food.is_active = 1
        and food.is_deleted = 0
        and food.food_status = 3
        and food_variations.food_variation_id = food.default_food_variation_id";
        $result = $this->db->query($sql)->result_array();
        array_push($tempArr, $result);
    }
    echo "<pre>";print_r($tempArr);
}

下面是上面查询的结果

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [food_id] => 10
                    [food_name] => Rama Mckee
                    [food_image] => 
                    [food_thumbnail] => 
                    [description] => asdfs
                    [price] => 34
                    [is_active] => 1
                )

            [1] => Array
                (
                    [food_id] => 6
                    [food_name] => Rishi
                    [food_image] => 
                    [food_thumbnail] => 
                    [description] => test
                    [price] => 120
                    [is_active] => 1
                )

            [2] => Array
                (
                    [food_id] => 5
                    [food_name] => test
                    [food_image] => http://localhost/gastroapp/assets/uploads/food_images/a5918726b920e7cbfc7f90e1afc48091.jpg
                    [food_thumbnail] => http://localhost/gastroapp/assets/uploads/food_images/thumb/a5918726b920e7cbfc7f90e1afc48091.jpg
                    [description] => test
                    [price] => 120
                    [is_active] => 1
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [food_id] => 10
                    [food_name] => Rama Mckee
                    [food_image] => 
                    [food_thumbnail] => 
                    [description] => asdfs
                    [price] => 34
                    [is_active] => 1
                )

            [1] => Array
                (
                    [food_id] => 7
                    [food_name] => ezhva
                    [food_image] => 
                    [food_thumbnail] => 
                    [description] => ddsfsd
                    [price] => 20
                    [is_active] => 1
                )

            [2] => Array
                (
                    [food_id] => 8
                    [food_name] => test
                    [food_image] => 
                    [food_thumbnail] => 
                    [description] => test
                    [price] => 22
                    [is_active] => 1
                )

            [3] => Array
                (
                    [food_id] => 6
                    [food_name] => Rishi
                    [food_image] => 
                    [food_thumbnail] => 
                    [description] => test
                    [price] => 120
                    [is_active] => 1
                )

        )

)

我得到了重复的结果,我认为这也可能导致性能问题。

以下是当我只有一个类别的食物给我期望的结果时的查询。

return $this->db->select('food.food_id,food_name,food_image,food_thumbnail,description,food_variations.price as price,is_active')
            ->from('food')
            ->join('food_variations', 'food_variations.food_id = food.food_id')
            ->where_in('category_id',$categoryIds)
            ->where('food.restaurant_id', $restaurantId)
            ->where('food.is_active', '1')
            ->where('food.is_deleted', '0')
            ->where('food.food_status','3')
            ->where('food_variations.food_variation_id IN( select food_variation_id from food_variations where food_variation_id = food.default_food_variation_id )')
            ->get()
            ->result_array();

请帮帮忙。

共有1个答案

孟成文
2023-03-14

首先,您需要在数组中插入列表

$list = {ids column}
$list = array_map("intval", explode(",", str_replace(',' , '', $list)));

现在您的列表保存在一个数组$list中

现在你可以称之为

foreach($list as $value) {
$sql = "SELECT * FROM menu WHERE user_id = '$user_id' AND id = '$value' AND deleted = '0' AND active = '1';";
$result = mysqli_query($dBconnection, $sql);
$check = mysqli_num_rows($result);
if ($check>0) {

while($row = mysqli_fetch_assoc($result)) {
cho $row['id'];
}

} else {
echo 'empty list';
}
}
 类似资料:
  • 我在数据库中有数据:Firebase中的数据库 我想读取所有子项(Belgia、Czechy、Polska…),并将其显示在文本字段中,但单击按钮后(我不会更改数据库中的数据)。按钮分配了以下功能: 在我写代码之前: 不幸的是,当我按下按钮时,什么也没有发生。 我很感激你的帮助问候,马辛

  • 问题内容: 我知道它是一个数组,但是我对JSON完全陌生,需要帮助理解它的结构,这是我提取数据的尝试: 我拥有的JSON数据如下所示: 我对这些东西的掌握并不强,因此感谢所有帮助。 问题答案: 这是个主意: 它应该可以工作(如果有编译错误,请随时投诉)

  • 一切正常,但DatabaseReference无法获取数据,这就像是忽略了我的代码运行,就像我的internet无法运行一样,请帮助我,我是这个社区的新手,下面是我的代码和图片。 以前它是工作的,但由于我只是更改了一些代码,使只有currentVersion>=vCode,这样即使数据库中的值是 firebase数据库映像 mainactivity.java manifest.xml 依赖关系

  • 我如何进行映射以及什么应该是带有join fetch的查询

  • 我正在做一个应用程序,我必须从firebase获取一些数据,并在RecyclerView中显示。但textView字段仍然为空,并且不显示任何数据。下面是db结构。我想获取“AlphabetMatching”下的节点的数据,但未能获取。回收器显示了我为行所做的布局,但没有数据库中的数据。 activity班: VIEWHOLDER类: } AMAW类 }

  • 我用的是Phil Sturgeon的 KEYS如何工作?有一个名为KEYS的表定义如下: 在名为KEYS的类中有如下方法: 由于这个软件包并没有很好的文档记录,而且我是API新手,所以上面的工作原理是什么?例如,我是否生成一个密钥并将其永久插入数据库。为什么会有删除方法? 从我的阅读资料来看,这听起来像是我为应用程序生成了一个初始的X-API-KEY,然后当客户端使用资源时,我会使用KEYS类将X