0

mysqlにアップロードしたいカレンダーイベントのリストがあります。これらのイベントの一部は毎週、一部は毎月発生します。また、挿入された各行とともに特定の週番号を挿入できるようにしたいです。eg

数週間

私がやりたいことをやらせようとしているコードのこの部分は、それをやっていません。画面にエラーは表示されず、データベースに行は挿入されません。

<?php 
    if(isset($_POST['myform'])){

            $day = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
            $month = array("January","February","March","April","May","June","July","August","September","October","November","December");
            $year = array("2011", "2012", "2013", "2014", "2015", "2016"); 

            $startday = $_POST['day'];
            $eventplace = $_POST['eventplace'];
            $eventname = $_POST['eventname'];
            $eventtime = $_POST['eventtime'];

            for($i=0; $i<count($year); $i++){

                for($j=0; $j<count($month); $j++){

                    for($k=$startday; $k<count($day); $k = $k + 7){



                  $query = mysql_query(" INSERT INTO caldemo(day, month, year, eventname, eventtime, eventplace)
                                         VALUES ('".$k."', '".$month[$j]."', '".$year[$i]."', '".$eventname."', '".$eventtime."', '".$eventplace."', )") ;
                  }
                }
             } 
          }
?>
4

2 に答える 2

2

SQLに構文エラーがあるため、コードはDBに値を入力していません。最後に、$eventplaceの後に余分なコンマがあります。

週番号が必要な場合は、mktimeを使用してタイムスタンプを取得してから、日付に「W」フラグを付けて週番号を取得できます。

そうは言っても、テーブルを再検討することもできます。イベント情報を 1 つのテーブルに格納し、イベントが発生するたびに別のテーブルに格納します。これにより、メタ情報 (名前、説明、場所) が分離され、同じテーブルで 5,000 万回繰り返されることがなくなります。他にもいくつか良い点がありますが、それはまた別の機会に。

Marc B が言ったように、少なくとも mysql_real_escape_string を使用してください。あなたが持っているように、誰かがあなたのデータベースを不注意で破壊することさえあります.

于 2012-09-20T21:55:54.873 に答える
0

イベント会場の後にコンマが多すぎる

于 2012-09-20T21:34:55.327 に答える