2017-10-25 9 views
2

私は "foreach loop"と "while loop"を組み合わせるのにしばらく取り組んできました。私はforeachを30回走らせたいと思う。これは$カウンタで示されます。今問題は私の "while"が毎回 "foreach"を再び開始するということです。しかし、それは30回聞き、毎回 "while"を回します。PHPでforeachで結合するとき

私はしばらくの一部を離れて取得し、静的コードを使用している場合は、それが完全に動作します。しかし、私は情報のために私のDBをリンクする必要があります。おそらくオプションは "foreach"を "for"または全く異なるオプションにすることです。しかし、私は彼を設定する方法は分かりません。

$ counter =月の日数

$ index = foreach time for running。 1人

の$ cut_startdayと一緒に$インデックスの最大$カウンタ

$ NUM =一意の番号が一緒に箱が赤や緑のようになったことを知らせます。アイデアは、コードでは何

foreach(range(1,$counter) as $index) {/*open foreach*/ 
         $get_data = " 
          SELECT * 
          FROM core"; 



    $result1 = $conn->query($get_data) or die($conn ->error); 


    //Start query 1 
    if($result1) { 
        while($row = $result1->fetch_assoc()) { 


      // Get NUM, START DATE and END DATE 
      $NUM = ($row['c_m_num']); 
      $startdate = ($row['e_date_s']); 
      $enddate = ($row['e_date_e']); 

      // Cut strings for date 
      $sort_year = substr($startdate, 6, 4); // START YEAR -> 2017 
      $sort_month = substr($startdate, 0, 2); // START MONTH -> 09 
      $cut_startday = substr($startdate, 3, 2); // START DAY -> 17 
      $cut_endday = substr($enddate, 3, 2); // END DAY -> 19 



         if($load_m_NUM == "$NUM" and $index >= $cut_startday && $index <= $cut_endday){ 
          echo"<td style='background-color:red;'>x</td>"; 
          } 


          else{ 
        echo"<td style='background-color:green;'></td>"; 
        } 


     } 

     }   



/*end foreach*/ } 

はここでどれも働いてforeachのためのコードです。一番上の行に月が表示され、左側に人が表示されます。コアが日と1人の男性の間でマッチを見つけた場合、緑色でない場合はtd赤色を着色します。

大変助かりました!

+1

あなたは毎回foreachを開始していますか?検証するforeachループの先頭にある '$ index'をエコーアウトしてみてください。 – aynber

+0

しかし、その目的は何ですか?あなたはあなたの 'core'テーブルからすべてを30回エコーアウトします。 – aynber

+0

コードのポーズが私の質問になりました。うまくいけばあなたは私を助けることができる。 –

答えて

1

あなたはfor ($index = 0; $index < 30; $index++)にforeach文を変更することができます。あなたのコードを改善するために、whileループの中にforループを置くことをお勧めします。この方法では、30回ではなく1回だけデータベースにクエリを実行します。

+0

そのため、OPはforループをバイパスし、クエリに 'LIMIT 30 'を追加するだけです。 – aynber

+0

かもしれないが、私はそうは思わない。彼は '$ index'に基づいて色付けされたテーブルセルをやっています。彼が何をするのか分からない... –

+0

Thx!どのようなアイデアがコードです。一番上の行に月が表示され、左側に人が表示されます。コアが日と1人の男性の間でマッチを見つけた場合、緑色でない場合はtd赤色を着色します。 –

関連する問題