Я храню даты от query до массива, используя while loop и array_push.Пока цикл внутри цикла foreach не переходит к циклу foreach
$h = array();
$j = array();
while ($g = mysql_fetch_array($f)) {
$date = new DateTime($g['selected_date']);
echo "<th>" . date_format($date, 'd') . "</th>";
array_push($h, $date);
array_push($j, $g['selected_date']);
}
Распечатка этого массива возвращает к этому, что хорошо, я думаю.
Array (
[0] => 2016-05-23
[1] => 2016-05-24
[2] => 2016-05-25
[3] => 2016-05-26
[4] => 2016-05-27
[5] => 2016-05-28
)
Я пытаюсь использовать так:
$a = mysql_query("select * from center") or die(mysql_error());
$arr = array();
foreach($j as $k) {
while ($b = mysql_fetch_array($a)) {
$l = "select sum(yid.center_inventory) as 'total'
from yl_inventory_details as yid
left join yl_inventory as yi
on yi.yl_inventory_no = yid.yl_inventory_no
where yid.center_no = '$b[center_no]'
and yi.date = '$k'";
$c = mysql_query("$l") or die(mysql_error());
$d = mysql_fetch_array($c);
echo "<tr><td>".$b['center']."</td><td>".$d['total']."</td></tr>";
}
}
Но это занимает только первое значение, которое 2016-05-23
. Цикл while, похоже, не переходит к следующему значению foreach. Как я могу это исправить?
Прежде чем делать что-либо еще, избавитесь от вызова функции 'mysql_'. Эти функции устаревают в течение длительного времени. Используйте 'mysqli_' или PDO. – trincot
поместите свою петлю foreach в цикл while, а вы золотой – Ale