Php 我想数一数特定日期的菜名

Php 我想数一数特定日期的菜名,php,mysql,Php,Mysql,我有一个order\u details表,其中有一个item列。在该列中,我有如下值。我使用PHP和mysql作为后端 Item _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2017-02-09_chicken masala, 2017-02-10_RAJMA, 2017-02-11_ROTI, 2017-02-13_BENGAN MASALA, 2017-02-14_DAAL _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2017-02-06_CHAWAL,2

我有一个
order\u details
表,其中有一个
item
列。在该列中,我有如下值。我使用PHP和mysql作为后端

Item
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2017-02-09_chicken masala, 2017-02-10_RAJMA, 2017-02-11_ROTI, 2017-02-13_BENGAN MASALA, 2017-02-14_DAAL 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2017-02-06_CHAWAL,2017-02-07_RAJMA,2017-02-08_ROTI,2017-02-09_BENGAN MASALA,2017-02-10_DAAL

从这一点上,我想做一个两个日期之间的菜名报告,但问题是菜名与日期相关。请帮助我-我不熟悉这一点。

首先在表中组织数据,有一列数据类型为Date的Date,一列数据类型为var char的dishname,一列数据类型为primary key,primary key使用int并将其设置为auto increment。这样,您只需要使用


选择*from tablename,其中date>='date1'和date从组织表中的数据开始,有一个数据类型为date的日期列,一个数据类型为var char的dishname列和一个主键列,主键使用int并将其设置为自动递增。这样,您只需要使用


选择*from tablename,其中date>='date1'和date我已经用用户定义的函数编写了代码,以提取两个日期之间的订购项目。这是您可以用来实现所需目标的代码

function get_dishes($dishes_str, $from_date, $to_date) {
    $dishes_str_explode = explode(",", $dishes_str);
    $dishes_str_explode = array_map(function($v) {
        return trim($v);
    }, $dishes_str_explode);

    $dishes = array();

    foreach($dishes_str_explode as $dish) {
        $dish_explode = explode("_", $dish);
        $dishes[] = $dish_explode;
        unset($dish_explode);
    }

    $dishes_extracted = array_map(function($v) use ($from_date, $to_date) {
        if(strtotime($v[0]) >= strtotime($from_date) && strtotime($v[0]) <= strtotime($to_date)) {
            return $v;
        }
    }, $dishes);

    return array_values(array_filter($dishes_extracted));
}

$dishes = array(
    "2017-02-09_chicken masala, 2017-02-10_RAJMA, 2017-02-11_ROTI, 2017-02-13_BENGAN MASALA, 2017-02-14_DAAL",
    "2017-02-06_CHAWAL,2017-02-07_RAJMA,2017-02-08_ROTI,2017-02-09_BENGAN MASALA,2017-02-10_DAAL"
);

$dishes_out = get_dishes($dishes[0], "2017-02-12", "2017-02-14");

foreach($dishes_out as $dish) {
    // Output with formatted date
    // echo "<p>Date: " . date_format(new DateTime($dish[0]), 'd-m-Y') . "<br>Dish: {$dish[1]}</p>";

    // Ouput with as-is date
    echo "<p>Date: {$dish[0]}<br>Dish: {$dish[1]}</p>";
}

echo "<p>Total dishes: " . count($dishes_out) . "</p>";
函数get_disks($disks_str,$from_date,$to_date){ $displays\u str\u explode=爆炸(“,”,$displays\u str); $displays\u str\u explode=数组\u映射(函数($v){ 返回修剪(五美元); },$disps\u str\u explode); $disks=array(); foreach($disks\u str\u爆炸为$dish){ $dish\u explode=爆炸(“\u”,$dish); $dish[]=$dish\u爆炸; 未设置($dish_explode); } $displays\u extracted=数组映射(函数($v)使用($from\u date,$to\u date){
如果(strotime($v[0])>=strotime($from_date)和&strotime($v[0])我已经用用户定义的函数编写了代码来提取两个日期之间的订购项目。这是您可以用来实现所需的代码

function get_dishes($dishes_str, $from_date, $to_date) {
    $dishes_str_explode = explode(",", $dishes_str);
    $dishes_str_explode = array_map(function($v) {
        return trim($v);
    }, $dishes_str_explode);

    $dishes = array();

    foreach($dishes_str_explode as $dish) {
        $dish_explode = explode("_", $dish);
        $dishes[] = $dish_explode;
        unset($dish_explode);
    }

    $dishes_extracted = array_map(function($v) use ($from_date, $to_date) {
        if(strtotime($v[0]) >= strtotime($from_date) && strtotime($v[0]) <= strtotime($to_date)) {
            return $v;
        }
    }, $dishes);

    return array_values(array_filter($dishes_extracted));
}

$dishes = array(
    "2017-02-09_chicken masala, 2017-02-10_RAJMA, 2017-02-11_ROTI, 2017-02-13_BENGAN MASALA, 2017-02-14_DAAL",
    "2017-02-06_CHAWAL,2017-02-07_RAJMA,2017-02-08_ROTI,2017-02-09_BENGAN MASALA,2017-02-10_DAAL"
);

$dishes_out = get_dishes($dishes[0], "2017-02-12", "2017-02-14");

foreach($dishes_out as $dish) {
    // Output with formatted date
    // echo "<p>Date: " . date_format(new DateTime($dish[0]), 'd-m-Y') . "<br>Dish: {$dish[1]}</p>";

    // Ouput with as-is date
    echo "<p>Date: {$dish[0]}<br>Dish: {$dish[1]}</p>";
}

echo "<p>Total dishes: " . count($dishes_out) . "</p>";
函数get_disks($disks_str,$from_date,$to_date){ $displays\u str\u explode=爆炸(“,”,$displays\u str); $displays\u str\u explode=数组\u映射(函数($v){ 返回修剪(五美元); },$disps\u str\u explode); $disks=array(); foreach($disks\u str\u爆炸为$dish){ $dish\u explode=爆炸(“\u”,$dish); $dish[]=$dish\u爆炸; 未设置($dish_explode); } $displays\u extracted=数组映射(函数($v)使用($from\u date,$to\u date){ 如果(strotime($v[0])>=strotime($from_date)和&strotime($v[0])$date_from='2017-02-09'; $date_to='2017-02-13'

$sql=“从订单详细信息中选择SUBSTR(项目,1,10)作为日期,SUBSTR(项目,12)作为dishname,其中SUBSTR(项目,1,10)>“$date\u FROM.”和SUBSTR(项目,1,10)$date\u FROM='2017-02-09'; $date_to='2017-02-13'


$sql=“从订单详细信息中选择SUBSTR(项目,1,10)作为日期,选择SUBSTR(项目,12)作为dishname,其中SUBSTR(项目,1,10)>”。“$date\u FROM.”和SUBSTR(项目,1,10)您想提取介于2017-02-06和2017-02-10之间的菜肴吗?是的,当我给出日期范围时,我想计算这两个日期之间的菜肴数量,然后计算每道菜的数量,以显示报告您是否获得了Perumal93。我需要确切的解决方案是的。我得到了您的意思。您有任何id吗ea关于如何做到这一点,因为在查询之间不起作用。这是查询$qry=“选择前缀日期项目作为订单中的项目”,其中前缀日期项目介于'。$post数据['date']。'和'。$post数据['end_date']。'”,并键入='customized'和store_id='。“$post_数据['store_id'.””;您想提取介于2017-02-06和2017-02-10之间的菜肴吗?是的,当我给出日期范围时,我想计算这两个日期之间的菜肴数量,然后计算每道菜的数量,以显示报告您在Perumal93中得到了吗。我需要确切的解决方案是的。我得到了您的意思。您有任何id吗ea关于如何做到这一点,因为在查询之间不起作用。这是查询$qry=“选择前缀日期项目作为订单中的项目”,其中前缀日期项目介于'。$post数据['date']。'和'。$post数据['end_date']。'”,并键入='customized'和store_id='。“$post_数据['store_id'.””;这现在不可能,因为我希望该结构显示在前端用户3417276这现在不可能,因为我希望该结构显示在前端用户3417276