У меня есть массив переменных сеанса, называемый «section_remember» с 2 значениями в нем. Я ожидаю, что приведенный ниже код приведет к одному «print_r» и даст мне два div (по одному для каждого значения в массиве).PHP foreach loop на массиве, возвращающем кратность тех же данных
Вместо этого он выполняет 2 print_r и дает мне 4 div, если это имеет смысл.
Если массив имеет 3 значения в нем, он запускает цикл 3 раза и приводит к 3 print_r и 9 div. И так далее, в зависимости от количества значений в массиве.
Я не понимаю, почему это делается, но я новичок в PHP, поэтому я надеюсь, что это нечто очевидное.
<?php
print_r($_SESSION['section_remember']);
foreach($_SESSION['section_remember'] as $key =>$value)
{
$sql = "SELECT `section`.`start`,`section`.`stop`,`section`.`title`,`daily_show`.`audio_file`
FROM `section`
INNER JOIN `daily_show`
ON `section`.`daily_show_id` = `daily_show`.`id`
WHERE `section`.`id` = $value";
$result = mysql_query($sql);
while ($query = mysql_fetch_array($result))
{
$title = $query['title'];
$seconds = $query['seconds'];
$duration = gmdate ('i:s', $seconds); //'H:i:s' for hours
echo "<div><span class='duration'>".$duration."</span>".$title."</div>";
}
}
?>
Запишите полный запрос вместо $ sql = "SELECT blah blah blah ...."; –
... и значение $ _SESSION ['section_remember'] –
Похоже, вы включаете/запускаете этот скрипт несколько раз, так как 'print_r()' находится за пределами любых циклов, но вы видите его более одного раза. Если, конечно, ваш вопрос не является [коротким, самодостаточным, правильным примером] (http://sscce.org/) – Phil