2017-06-14 17 views
0

私はスタックしています'while'ループ内の配列

私はコンセプトについて説明します。私は、日付を正しく変更した後、しばらく使って変更したクエリのデータ(日付)を取得してから、スイッチを開始します。 このスイッチでは、 'In the year 2017' +の日付をテーブルに追加したいのですが、このコレクションでは日付を挿入しても機能しません。 変数の例を初期化すると、次のようになります。$ x = "15:06";できます。助けて!ここで

は、対応するコードです:日付値を使用して、配列にし、代わりに追加する:ボックスの$ annee_selectionneが、私はより良いアプローチは、月の変数を作成することになると信じて

$req_public_holiday = $bdd - > query('SELECT * FROM public_holiday'); 


while ($donnees_public_holiday = $req_public_holiday - > fetch()) { 

    $format_date = date('Y.m.d', strtotime($donnees_public_holiday['date'])); 
    $var1 = explode('.', $format_date); 

    $year_selectionne = $var1[0]; 
    $month_selectionne = $var1[1]; 
    $day_selectionne = $var1[2]; 
    $date_x = $day_selectionne. 
    ":".$month_selectionne; 


    switch ($year_selectionne) { 
    case 2013: 
     $free_day = array('01:01', '01:04', '01:05', '08:05', '09:05', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
    case 2014: 
     $free_day = array('01:01', '21:04', '01:05', '08:05', '29:05', '09:06', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
    case 2015: 
     $free_day = array('01:01', '06:04', '01:05', '08:05', '14:05', '25:05', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
    case 2016: 
     $free_day = array('01:01', '28:03', '01:05', '05:05', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
     problem-- > 
    case $year_selectionne: 
     $free_day = array($day_selectionne.':'.$month_selectionne); 
     break; 
    default: 
     $free_day = array('01:01', '01:05', '08:05', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
    } 

} 
+0

あなたはいくつかのHTMLと多分いくつかのCSSを追加する必要があります..あなたはhttps://www.jsfiddle.netに行き、あなたのコードをそこに置くことができます。 jsfiddle URLをここにコメントとして投稿するか、質問を編集して挿入してください。 –

+0

私は理解していません - 変数を初期化する際の問題は何ですか?変数を初期化する必要があります。それ以外の場合は未定義です。すべての値が同じになるのか、それとも何が問題なのですか? –

+0

phpfiddlesを作るためのphpfiddle.orgもあります –

答えて

0

を動作しません。 (PHP array_push())

array()型の$ month_date変数を作成し、そのメソッドを使用してプッシュします。 if..elseチェックを使用して、その変数がすでに存在するかどうかを確認できます。

+0

@ igor-paivaはarray_push()を使って提案したものと同じものを示しています これは役立つはずですnosperato。 :) – anugrah

0

コードを変更して、機能array_push()を使用しました。

$req_public_holiday = $bdd - > query('SELECT * FROM public_holiday'); 


while ($donnees_public_holiday = $req_public_holiday - > fetch()) { 

    $format_date = date('Y.m.d', strtotime($donnees_public_holiday['date'])); 
    $var1 = explode('.', $format_date); 

    $year_selectionne = $var1[0]; 
    $month_selectionne = $var1[1]; 
    $day_selectionne = $var1[2]; 
    $date_x = $day_selectionne. 
    ":".$month_selectionne; 


    switch ($year_selectionne) { 
    case 2013: 
     $free_day = array('01:01', '01:04', '01:05', '08:05', '09:05', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
    case 2014: 
     $free_day = array('01:01', '21:04', '01:05', '08:05', '29:05', '09:06', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
    case 2015: 
     $free_day = array('01:01', '06:04', '01:05', '08:05', '14:05', '25:05', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
    case 2016: 
     $free_day = array('01:01', '28:03', '01:05', '05:05', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 

    case date('Y'): 
     $free_day = array_push($free_day, $day_selectionne.':'.$month_selectionne); 
     break; 
    default: 

     $free_day = array('01:01', '01:05', '08:05', '14:07', '15:08', '01:11', '11:11', '25:12'); 
     break; 
    } 

} 

お手数ですが、