Php 联合双foreach循环
我有一个产品表和一个订单表,我想结合这些数据来绘制条形图。如果我运行每个循环的订单,产品将不显示,如果我运行产品,则订单将不显示。如何结合这些Php 联合双foreach循环,php,mysql,foreach,Php,Mysql,Foreach,我有一个产品表和一个订单表,我想结合这些数据来绘制条形图。如果我运行每个循环的订单,产品将不显示,如果我运行产品,则订单将不显示。如何结合这些 $query_product = "SELECT *,count(products.id) as no_products FROM products group by MONTH(products.added_on) , YEAR(products.added_on)"; $query_order = "SELECT *,
$query_product = "SELECT *,count(products.id) as no_products FROM products group by MONTH(products.added_on) , YEAR(products.added_on)";
$query_order = "SELECT *,count(orders.id) as no_orders FROM orders group by MONTH(orders.added_on) , YEAR(orders.added_on) order by YEAR(orders.added_on) asc, MONTH(orders.added_on) asc";
$result_order = mysqli_query($con, $query_order);
$result_product = mysqli_query($con, $query_product);
$chart_data = '';
$product_data = array();
while ($row = mysqli_fetch_assoc($result_product)) {
$product_data[] = $row;
}
$order_data = array();
while ($row = mysqli_fetch_assoc($result_order)) {
$order_data[] = $row;
}
foreach ($order_data as $key => $val) {
$date = $val['added_on'];
$month_year = date('F, Y', strtotime($date));
$chart_data .= "{ year:'" . $month_year . "', income:" . '5' . ", products:" . '' . ", orders:" . $val['no_orders'] . "}, ";
}
//I want to gain my data like this below string.
//$chart_data .= "{ year:'".$month_year."', income:".'5'.", products:".$val['no_products'].", orders:".$val['no_orders']."}, ";
}
可能是这样的—使用关联数组来存储数据,因为您是按月/年对数据进行分组的
while ($row = mysqli_fetch_assoc($result_product)) {
$product_data[date("m-Y", strtotime($row['added_on']))] = $row;
}
while ($row = mysqli_fetch_assoc($result_order)) {
$order_data[date("m-Y", strtotime($row['added_on']))] = $row;
}
现在,您可以引用阵列:
foreach ($order_data as $key => $val) {
$date = $val['added_on'];
$month_year = date('F, Y', strtotime($date));
$keyFind = date("m-Y", strtotime($date));
$chart_data[]= array(
"year" => $month_year,
"income" => '5',
"products" => $product_data[$keyFind]['no_products'],
"orders" => $val['no_orders']
);
}
// NOW make it json
$chart_data = json_encode($chart_dta);
请分享更多细节。你所说的“如何组合这些”是什么意思?结果应该是怎样的?你还试图解决什么问题?为什么你要自己构建json字符串,而不是使用数组和
json_encode
?嗨,我想显示我的数据,比如$chart_data.=“{year:”“$month_year.”,收入:“.5.”,产品:“.val['no_products']”,订单:“.val['no_orders']”,”;如果我使用double foreach循环,那么我将无法得到我需要的结果,我希望如果我添加产品,那么数据将仅显示产品,如果我下订单,那么数据将显示我每个月的订单和产品,我希望您理解。请通过编辑对您的问题进行所有澄清。再说一次:为什么不使用json\u encode
?我是初学者,我不知道json\u encode,我正在努力学习,这就是为什么我使用数组和循环