2017-09-28 14 views
-2

複数のデータをdbに挿入しようとしています。チェックボックスを連続してチェックすると、連続した値からデータを挿入できます。チェックボックスをチェックすると、データが挿入されません。コードを理解できれば助けてください。私の英語と私のコードが悪かったら、申し訳ありません。必要PHPを使用して複数行をデータベースに挿入

コードを助ける

<? 
       $j=10; 
       for($i=1; $i<= $j; $i++) { 
        ?> 
        <script> 
        $(function() { 
        $("#date<? echo $i; ?>").datepicker({ 
        //showOn: both - datepicker will appear clicking the input box as well as the calendar icon 
        //showOn: button - datepicker will appear only on clicking the calendar icon 
        showOn: 'button', 
        buttonImage: 'dlcalendar_2.gif', 
        buttonImageOnly: true, 
        changeMonth: true, 
        changeYear: true, 
        showAnim: 'slideToggle', 
        dateFormat: 'yy-mm-dd' 
        }); 
        }); 
        </script> 
        <tr> 
        <td><input type="checkbox" name="day[]" value="1"> 
        Day <?echo $i; ?>&nbsp;<input type="text" name="date[]" id="date<? echo $i; ?>"></td> 
        <td><textarea cols=50 rows=2 name="comment[]"></textarea></td> 
        <td colspan=2 align="center"> 
         <select name="vas[]" > 
         <option>--choose--</option> 
         <option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option> 
        </select></td> 
       </tr> 
       <? 
       } 
       ?> 

INSERTクエリのように見えます。

foreach($_POST['day'] as $key => $day){ 
    $day2 = $day; 
    $date = mysql_real_escape_string($_POST['date'][$key]); 
    $comment = mysql_real_escape_string($_POST['comment'][$key]); 
    $vas = mysql_real_escape_string($_POST['vas'][$key]); 
    $insert = "insert into spinal(day,ddate,comments,vas) values('".$day2."', 
    '".$date."','".$comment."','".$vas."')"; 
    echo $insert; 
    mysql_query($insert); 

我々は10行のように持っている場合、私は2と7と9行を選択した場合は、それだけで、これらの行の値をとる必要があり、選択した行からすべてのレコードを挿入する必要があります。

+0

あなたの質問は不明で、多くの詳細が不足しています。あなたの現在のコードはhtmlテーブルからのもので、データベースやPHPとは関係ありません。 – Epodax

+0

@Epodaxで今自分のコードを読むことができますか? – vino

答えて

2

day[]配列にはチェックされたチェックボックスのみが含まれていますが、他の配列には空の要素も含まれているため、コードは連続したフィールドに値が入力された場合にのみ機能します。この問題を解決するには、チェックボックスを削除し、配列date[]のキーからその値を取得します。次のようなものを使用することができます:

foreach ($_POST['date'] as $key => $date) { 
     if (!$date) {continue;} 
     // get the day value 
     $day = $key + 1; 
     $comment = mysql_real_escape_string($_POST['comment'][$key]); 
     $date = mysql_real_escape_string($date); 
     // check if vas is choosed 
     if ($_POST['vas'][$key] != "--choose--") { 
     $vas = mysql_real_escape_string($_POST['vas'][$key]); 
     } else { 
     $vas = ""; 
     } 
     $insert = "insert into spinal(day,ddate,comments,vas) values('".$day2."', 
    '".$date."','".$comment."','".$vas."')"; 
     echo $insert; 
     mysql_query($insert);} 

私はこれが役に立ちそうです。

+0

最近どこに行ったのですか?出来た!ありがとう@サイマーアブガガ。 – vino

+0

あなたは大歓迎です。私はとてもうれしく働いています。 –

+0

$ _POST ['day']のチェックボックスを使用してこれを行うことはできますか – vino

関連する問題