【问题标题】:While loop and array in phpphp中的while循环和数组
【发布时间】:2026-02-12 11:50:02
【问题描述】:

我有一个 while 循环,它将循环 2 次(周一和周二)。 在while循环中,我有一个条件来检查第一个循环是否是“星期一”,如果是星期一,它将检查该值并选中相应的复选框。

代码在星期一完美运行。但是星期二的复选框根本没有回声。

<div class="form-group">
                                            <table>
                                                <tr>
                                                    <td style="width: 10%">&nbsp;</td>
                                                    <?php
                                                        //Get the list of time
                                                        $sqlTime="SELECT timeDesc FROM time";
                                                        $resultTime=mysql_query($sqlTime);
                                                        while($rowTime=mysql_fetch_array($resultTime))
                                                        {
                                                    ?>
                                                            <td style="text-align: center"><?php echo $rowTime['timeDesc'];?></td>
                                                    <?php
                                                        }
                                                    ?>
                                                </tr>
                                                <?php
                                                    //Get the list of day
                                                    $sqlDay="SELECT dayDesc FROM day";
                                                    $resultDay=mysql_query($sqlDay);
                                                    while($rowDay=mysql_fetch_array($resultDay))
                                                        {
                                                    ?>
                                                            <tr>
                                                            <td><?php echo $rowDay['dayDesc'];?></td>
                                                            <?php
                                                                //Get the list of time
                                                                $sqlTime="SELECT * FROM time";
                                                                $resultTime=mysql_query($sqlTime);
                                                                while($rowTime=mysql_fetch_array($resultTime))
                                                                {
                                                                    if($rowDay['dayDesc'] == 'Monday')
                                                                    {
                                                                        //Get tutor preferences for Monday
                                                                        $sqlGetMonday = mysql_query("SELECT tutorPreferencesMon FROM tutorpreferences WHERE tutorID='$showTutorID'");
                                                                        $resultGetMonday  = mysql_fetch_array($sqlGetMonday);
                                                                        $tutorGetMonday = $resultGetMonday['tutorPreferencesMon'];
                                                                        $showMonday = $tutorGetMonday;
                                                                        $mondayArray = explode(',', $showMonday);

                                                                        while($rowTimeList=mysql_fetch_array($resultTimeList))
                                                                        {       
                                                                            $checkedMonday = "";
                                                                            foreach($mondayArray as $monday_Array)
                                                                            {
                                                                               if($monday_Array == $rowTimeList['timeID'])
                                                                               {
                                                                                 $checkedMonday = "checked";
                                                                               }           
                                                                            }
                                                                            echo "<td style='text-align: center'><input type='checkbox' name='".$rowDay['dayDesc']."[]' value='".$rowTimeList['timeID']."' ".$checkedMonday."></td>";
                                                                        }
                                                                    }//End if Monday

                                                                    elseif($rowDay['dayDesc'] == 'Tuesday')
                                                                    {
                                                                        //Get tutor preferences for Tuesday
                                                                        $sqlGetTuesday = mysql_query("SELECT tutorPreferencesTues FROM tutorpreferences WHERE tutorID='$showTutorID'");
                                                                        $resultGetTuesday  = mysql_fetch_array($sqlGetTuesday);
                                                                        $tutorGetTuesday = $resultGetTuesday['tutorPreferencesTues'];
                                                                        $showTuesday = $tutorGetTuesday;
                                                                        $tuesdayArray = explode(',', $showTuesday);

                                                                        while($rowTimeList=mysql_fetch_array($resultTimeList))
                                                                        {       
                                                                            $checkedTuesday = "";
                                                                            foreach($tuesdayArray as $tuesday_Array)
                                                                            {
                                                                               if($tuesday_Array == $rowTimeList['timeID'])
                                                                               {
                                                                                 $checkedTuesday = "checked";
                                                                               }           
                                                                            }
                                                                            echo "<td style='text-align: center'><input type='checkbox' name='".$rowDay['dayDesc']."[]' value='".$rowTimeList['timeID']."' ".$checkedTuesday."></td>";
                                                                        }
                                                                    }//End if Tuesday

                                                                    elseif($rowDay['dayDesc'] == 'Wednesday')
                                                                    {
                                                                        //Get tutor preferences for Wednesday
                                                                        $sqlGetWednesday = mysql_query("SELECT tutorPreferencesWed FROM tutorpreferences WHERE tutorID='$showTutorID'");
                                                                        $resultGetWednesday  = mysql_fetch_array($sqlGetWednesday);
                                                                        $tutorGetWednesday = $resultGetWednesday['tutorPreferencesWed'];
                                                                        $showWednesday = $tutorGetWednesday;
                                                                        $wednesdayArray = explode(',', $showWednesday);

                                                                        while($rowTimeList=mysql_fetch_array($resultTimeList))
                                                                        {       
                                                                            $checkedWednesday = "";
                                                                            foreach($wednesdayArray as $wednesday_Array)
                                                                            {
                                                                               if($wednesday_Array == $rowTimeList['timeID'])
                                                                               {
                                                                                 $checkedWednesday = "checked";
                                                                               }           
                                                                            }
                                                                            echo "<td style='text-align: center'><input type='checkbox' name='".$rowDay['dayDesc']."[]' value='".$rowTimeList['timeID']."' ".$checkedWednesday."></td>";
                                                                        }
                                                                    }//End if Wednesday

                                                                    elseif($rowDay['dayDesc'] == 'Thursday')
                                                                    {
                                                                        //Get tutor preferences for Thursday
                                                                        $sqlGetThursday = mysql_query("SELECT tutorPreferencesThurs FROM tutorpreferences WHERE tutorID='$showTutorID'");
                                                                        $resultGetThursday  = mysql_fetch_array($sqlGetThursday);
                                                                        $tutorGetThursday = $resultGetThursday['tutorPreferencesThurs'];
                                                                        $showThursday = $tutorGetThursday;
                                                                        $thursdayArray = explode(',', $showThursday);

                                                                        while($rowTimeList=mysql_fetch_array($resultTimeList))
                                                                        {       
                                                                            $checkedThursday = "";
                                                                            foreach($thursdayArray as $thursday_Array)
                                                                            {
                                                                               if($thursday_Array == $rowTimeList['timeID'])
                                                                               {
                                                                                 $checkedThursday = "checked";
                                                                               }           
                                                                            }
                                                                            echo "<td style='text-align: center'><input type='checkbox' name='".$rowDay['dayDesc']."[]' value='".$rowTimeList['timeID']."' ".$checkedThursday."></td>";
                                                                        }
                                                                    }//End if Thursday

                                                                    elseif($rowDay['dayDesc'] == 'Friday')
                                                                    {
                                                                        //Get tutor preferences for Friday
                                                                        $sqlGetFriday = mysql_query("SELECT tutorPreferencesFri FROM tutorpreferences WHERE tutorID='$showTutorID'");
                                                                        $resultGetFriday  = mysql_fetch_array($sqlGetFriday);
                                                                        $tutorGetFriday = $resultGetFriday['tutorPreferencesFri'];
                                                                        $showFriday = $tutorGetFriday;
                                                                        $fridayArray = explode(',', $showFriday);

                                                                        while($rowTimeList=mysql_fetch_array($resultTimeList))
                                                                        {       
                                                                            $checkedFriday = "";
                                                                            foreach($fridayArray as $friday_Array)
                                                                            {
                                                                               if($friday_Array == $rowTimeList['timeID'])
                                                                               {
                                                                                 $checkedFriday = "checked";
                                                                               }           
                                                                            }
                                                                            echo "<td style='text-align: center'><input type='checkbox' name='".$rowDay['dayDesc']."[]' value='".$rowTimeList['timeID']."' ".$checkedFriday."></td>";
                                                                        }
                                                                    }//End if Friday

                                                                    elseif($rowDay['dayDesc'] == 'Saturday')
                                                                    {
                                                                        //Get tutor preferences for Saturday
                                                                        $sqlGetSaturday = mysql_query("SELECT tutorPreferencesSat FROM tutorpreferences WHERE tutorID='$showTutorID'");
                                                                        $resultGetSaturday  = mysql_fetch_array($sqlGetSaturday);
                                                                        $tutorGetSaturday = $resultGetSaturday['tutorPreferencesSat'];
                                                                        $showSaturday = $tutorGetSaturday;
                                                                        $saturdayArray = explode(',', $showSaturday);

                                                                        while($rowTimeList=mysql_fetch_array($resultTimeList))
                                                                        {       
                                                                            $checkedSaturday = "";
                                                                            foreach($saturdayArray as $saturday_Array)
                                                                            {
                                                                               if($saturday_Array == $rowTimeList['timeID'])
                                                                               {
                                                                                 $checkedSaturday = "checked";
                                                                               }           
                                                                            }
                                                                            echo "<td style='text-align: center'><input type='checkbox' name='".$rowDay['dayDesc']."[]' value='".$rowTimeList['timeID']."' ".$checkedSaturday."></td>";
                                                                        }
                                                                    }//End if Saturday

                                                                    elseif($rowDay['dayDesc'] == 'Sunday')
                                                                    {
                                                                        //Get tutor preferences for Sunday
                                                                        $sqlGetSunday = mysql_query("SELECT tutorPreferencesSun FROM tutorpreferences WHERE tutorID='$showTutorID'");
                                                                        $resultGetSunday  = mysql_fetch_array($sqlGetSunday);
                                                                        $tutorGetSunday = $resultGetSunday['tutorPreferencesSun'];
                                                                        $showSunday = $tutorGetSunday;
                                                                        $sundayArray = explode(',', $showSunday);

                                                                        while($rowTimeList=mysql_fetch_array($resultTimeList))
                                                                        {       
                                                                            $checkedSunday = "";
                                                                            foreach($sundayArray as $sunday_Array)
                                                                            {
                                                                               if($sunday_Array == $rowTimeList['timeID'])
                                                                               {
                                                                                 $checkedSunday = "checked";
                                                                               }           
                                                                            }
                                                                            echo "<td style='text-align: center'><input type='checkbox' name='".$rowDay['dayDesc']."[]' value='".$rowTimeList['timeID']."' ".$checkedSunday."></td>";
                                                                        }
                                                                    }//End if Sunday
                                                                }//End while
                                                            ?>
                                                            </tr>
                                                    <?php
                                                        }
                                                    ?>
                                            </table>
                                        </div>

【问题讨论】:

  • 您的代码非常复杂。尝试编写您想要的输出以及数据库的快照。它会明确你的问题的概念,它会解决你的问题

标签: php mysql arrays while-loop


【解决方案1】:

您的while 循环更改变量$rowTime,同时您正在检查变量$rowDay。您可能需要仔细检查。

编辑:

使用此代码:

                                    <div class="form-group">
                                        <table>
                                            <tr>
                                                <td style="width: 10%">&nbsp;</td>
                                                <?php
                                                    //Get the list of time
                                                    $sqlTime="SELECT timeDesc FROM time";
                                                    $resultTime=mysql_query($sqlTime);
                                                    while($rowTime=mysql_fetch_array($resultTime))
                                                    {
                                                ?>
                                                        <td style="text-align: center"><?php echo $rowTime['timeDesc'];?></td>
                                                <?php
                                                    }
                                                ?>
                                            </tr>
                                            <?php
                                                //Get the list of day
                                                $sqlDay="SELECT dayDesc FROM day";
                                                $resultDay=mysql_query($sqlDay);
                                                while($rowDay=mysql_fetch_array($resultDay))
                                                    {
                                                ?>
                                                        <tr>
                                                        <td><?php echo $rowDay['dayDesc'];?></td>
                                                        <?php
                                                            //Get the list of time
                                                            $sqlTime="SELECT * FROM time";
                                                            $resultTime=mysql_query($sqlTime);
                                                            $preferences = array('Monday'    => 'tutorPreferencesMon',
                                                                                 'Tuesday'   => 'tutorPreferencesTues',
                                                                                 'Wednesday' => 'tutorPreferencesWed',
                                                                                 'Thursday'  => 'tutorPreferencesThurs',
                                                                                 'Friday'    => 'tutorPreferencesFri',
                                                                                 'Saturday'  => 'tutorPreferencesSat',
                                                                                 'Sunday'    => 'tutorPreferencesSun');
                                                            while($rowTime=mysql_fetch_array($resultTime))
                                                            {
                                                                $preferences = $preferences[$rowDay['dayDesc']];
                                                                $sqlGetMonday = mysql_query("SELECT ".$preferences." FROM tutorpreferences WHERE tutorID='$showTutorID'");
                                                                $resultGetMonday  = mysql_fetch_array($sqlGetMonday);
                                                                $tutorGetMonday = $resultGetMonday[$preferences];
                                                                $showMonday = $tutorGetMonday;
                                                                $mondayArray = explode(',', $showMonday);

                                                                while($rowTimeList=mysql_fetch_array($resultTimeList))
                                                                {       
                                                                    $checkedMonday = "";
                                                                    foreach($mondayArray as $monday_Array)
                                                                    {
                                                                       if($monday_Array == $rowTimeList['timeID'])
                                                                       {
                                                                         $checkedMonday = "checked";
                                                                       }           
                                                                    }
                                                                    echo "<td style='text-align: center'><input type='checkbox' name='".$rowDay['dayDesc']."[]' value='".$rowTimeList['timeID']."' ".$checkedMonday."></td>";
                                                                } 
                                                            }//End while
                                                        ?>
                                                        </tr>
                                                <?php
                                                    }
                                                ?>
                                        </table>
                                    </div>

【讨论】:

  • 感谢您的回复。但我不太确定。
  • 抱歉,关于什么?你只需要在while根据$rowTime重新设置$rowDay
  • 现在我正在以表格格式构建这些内容。 $rowDay 将由星期一、星期二...星期日组成。 $rowTime 将包括上午 9 点、上午 10 点 .... 晚上 9 点。我试图输出 Monday 一直到星期日。然后,当它在星期一输出时,它将检查从上午 9 点到晚上 9 点。周一到周日都可以
  • 你不懂。请把完整的代码放在这里,我会为你修复它
  • 现在我明白为什么我们没有谈论相同的话题了——我们真的没有。现在情况不同了。让我知道代码是否适用于除周二以外的其他日子?