【问题标题】:PHP for loop not entering into loopPHP for循环没有进入循环
【发布时间】:2011-09-30 19:05:27
【问题描述】:

由于某种原因,我的 for 循环并没有从看起来开始。我通过在其中放置一个 echo 语句对其进行了测试,但它没有显示,所以一定有问题,可能是我的语法,但看了几个小时后我看不到它。

感谢您的宝贵时间。

echo $completedstaffrows; // value of 5
        echo $completedeventrows; //value of 4
            echo "<br/>";

        //Staff

            //For loop to enter the correct amount of rows as entered in the form
            for ($i=0; $i > $completedstaffrows; $i++)
            {

                //Data not inserted into Staff table, FK given from dropdown on form to insert in linking table

                $staffdata = array
                (
                    'staff_id' => $this->input->post ('staff'.$i),
                    'procedure_id' => $procedurefk,
                    'quantity' => $this->input->post ('staff_quantity'.$i),
                    'quantity_sterilised' => NULL, //not implemented yet
                );

                $inserthumanresource = $this->db->insert ('hr', $staffdata);
                echo "hello world"; // to test if for loop working
            }



        //Events

                //For loop to enter all events rows completed by user
                for ($i=0; $i > $completedeventrows; $i++)
                {

                    //First input into "Medical Supplies" table
                    $medsupplies = array
                    (
                        'name' => $this->input->post ('supplies'.$i),
                        'manufacturer' => "Bruce Industries" //To be implemented
                    );

                        //Insert data into table
                        $insertmeds = $this->db->insert ('med_item', $insertmeds);

                        //Get med supplies foreign key for linking table
                        $medsuppliesfk = $this->db->insert_id();

                    //Then input into table "Event"

                    $eventdata = array 
                    (
                        'time' => $this->input->post ('time'.$i),
                        'event' => $this->input->post ('event'.$i),
                        'success' => $this->input->post ('success'.$i),
                        'comment' => $this->input->post ('comment'.$i),
                        'procedure_id' => $procedurefk

                    );
                        //Insert
                        $insertevent = $this->db->insert ('procedure_event', $eventdata);


                        //Get event fk for linking table 
                        $eventfk = $this->db->insert_id();

                    //Linking table "Resources"

                    $resourcedata = array
                    (
                        'event_id' => $eventfk,
                        'medical_item_id' => $medsuppliesfk,
                        'quantity' => NULL, //Not implemented yet
                        'unit' => NULL



                    );

                    $insertresource = $this->db->insert ('resources', $resourcedata);

【问题讨论】:

  • 答案如潮水般涌来

标签: php codeigniter for-loop


【解决方案1】:
for ($i=0; $i > $completedstaffrows; $i++)

应阅读:

for ($i=0; $i < $completedstaffrows; $i++)

或许:

for ($i=0; $i <= $completedstaffrows; $i++)

【讨论】:

  • 谢谢,不敢相信我没有发现我现在感觉这么愚蠢哈哈
【解决方案2】:

改变

for ($i=0; $i &gt; $completedstaffrows; $i++)

for ($i=0; $i &lt; $completedstaffrows; $i++)

您想在 i 小于变量数量时进行迭代,而不是更多。

【讨论】:

    【解决方案3】:

    您的运营商不正确。将&gt; 切换为&lt;

    【讨论】:

      【解决方案4】:

      i 大于$completedstaffrows 等时,您只会循环。将&gt;s 更改为&lt;s。

      【讨论】:

      • 有时只需要换一双眼睛
      【解决方案5】:
      $i=0; $i < $completedstaffrows; $i++
             ^^^^^
      

      【讨论】:

      • 点击他的答案旁边的灰色勾号:)
      【解决方案6】:

      好吧,您编写 $completedstaffrows=5 并初始化 $i=0,在循环中您编写“$i > $completedstaffrows”,第一次运行的计算结果为 0 > 5,这恰好是错误的。所以这就是它不进入循环的原因。所以将“>”替换为“

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-19
        • 1970-01-01
        • 1970-01-01
        • 2016-05-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多