我遇到了创建标题循环的问题。我想为每个标题创建一个日期列表,这些日期是从标题中提取的。
我想我想在循环中循环。
我认为一旦$h
到达$number_of_days
,它就不会重置,即使它在第一个while
循环内。有没有不同的方法可以解决这个问题?
$h='1';
while($report_types = $rt_type->fetch())
{
$rt_types = $report_types['report_name'];
echo '<div>'. $rt_types .'</div>';
while($h <= $number_of_days){
echo '<div class="report_day">'.$h.'</div>';
$h++;
}
}
答案 0 :(得分:3)
我在$h
$report_types
添加了重置
$h=1;
while($report_types = $rt_type->fetch())
{
$rt_types = $report_types['report_name'];
echo '<div>'. $rt_types .'</div>';
while($h <= $number_of_days){
echo '<div class="report_day">'.$h.'</div>';
$h++;
}
$h=1; //RESET BEFORE NEXT LOOP
}
答案 1 :(得分:0)
将$h='1';
置于第一个内。
所以改变:
$h='1';
while($report_types = $rt_type->fetch())
{
成:
while($report_types = $rt_type->fetch())
{
$h='1';
答案 2 :(得分:0)
您的代码的部分问题来自格式化而不是任何事情。代码越不易读,调试就越困难。
那就是说,这是我的代码的重写版本:
while($report_types = $rt_type->fetch()) {
$rt_types = $report_types['report_name'];
echo '<div>' . $rt_types . '</div>';
for ($h = 1; $h <= $number_of_days; $h++) {
echo '<div class="report_day">' . $h . '</div>';
}
}
我做的是删除while
循环&amp;将它切换到for
循环,这使逻辑更清洁。所以现在你的$h1
递增逻辑全部包含在这一行for ($h = 1; $h <= $number_of_days; $h++) {
中,这使得它更易于阅读和阅读。也明白了。
此外,就原始代码而言,此$h
的分配存在问题:
$h='1';
当您将值放在引号中时,它会使这些引号中的内容成为文字字符串。出于数字目的,您可以将其设置为:
$h=1;