2017-12-13 8 views
-1

私はPHPのファイルに複数の座席を送信するフォームを持っています。私はSQLに各座席を挿入するforeachループを作成しました。何らかの理由で、私はそれを送る必要があるすべての情報を得ることができますが、それは挿入されません。foreach PHPを使用してSQLテーブルにデータを挿入

外部キーと関係があるかどうかわかりません。しかし、私がしたいことは、どの電子メールがどの座席を選択したかを示すことです。私はまた、SQLに送信されるときに各シートを無効にしたい。

sql side

これが私の出力です。

You are currently in database admin. 


[email protected] 
1A 
1B 
1C 
Data added successfully. 
Back to seating. 

これは、あなたがVALUESキーワードの後に​​括弧を必要とする私のflightselect.php

  <?php 
    error_reporting(E_ALL); 
    ini_set('display_errors',1); 
    include_once 'includes/db_connect.php'; 
    include_once 'includes/functions.php'; 
    sec_session_start(); 

if (login_check($mysqli) == true) { 
    $logged = 'in'; 
} else { 
    $logged = 'out'; 
} 
       $username = $_SESSION['username']; 
       echo '<p>You are currently '.$logged. ' database '.$username. '.</p><br>'; 

       $getemail = mysqli_query($mysqli, "SELECT email FROM members WHERE username = '$username' "); 
       $email = ''; 
       while($gear = mysqli_fetch_array($getemail)) { 
        echo $gear['email']; 
        $email = $gear['email']; 
       } 

       echo $gear."<br>"; 

    if(isset($_POST['seatme'])){ 
     if(!empty($_POST['flight'])){ 
      foreach($_POST['flight'] as $key=>$selected){ 
       echo $selected."<br>"; 
       $result = mysqli_query($mysqli, "INSERT INTO seating (seat_id, email, flight_id) 
                VALUES ('$selected', '$gear', '1')"); 
      } 
     } 
    } 
     echo "<font color='green'>Data added successfully."; 
     echo "<br/><a href='user.php'>Back to seating.</a>"; 
?> 
+0

スクリーンショットの代わりにコードを含めてください。 – BPS

+0

あなたはどのようなエラーメッセージを表示していますか、またはあなたのコードが動作していないことを示す証拠はありますか? – BPS

+0

注: 'mysqli'へのオブジェクト指向インタフェースは、コードの読み込みと監査を容易にし、' mysql_query'インタフェースと混同しにくいものになりました。手続き型スタイルに多額の投資をする前に、それを切り換える価値があります。例: '$ db = new mysqli(...)'と '$ db-> prepare(" ... ")'手続き型インタフェースはmysqli' APIが導入されたPHP 4時代のアーティファクトであり、コード。 – tadman

答えて

1

です...

 if (!mysqli_query($mysqli, "INSERT INTO seating (seat_id, email, flight_id) 
            VALUES ('$selected', '$gear', '1')")) { 
       printf("Error: %s\n", $mysqli->error); 
     } 

彼らはあなたのSQLをするようあなたはまた、準備された文について学ぶ必要がありますより安全な。

+0

私はちょうどあなたが言ったことを試みた、それは仕事をdidnt、データはSQLに渡されませんでした。それは外来キーの可能性がありますか?か何か? –

+0

'$ selected'の値はデータベース(field_id)の数値として定義されていますが、 '3B'を渡そうとしています。 –

+0

私はsqlをvarchar50に変更しました。再度提出を試みました。それでも仕事はできませんでした。私は自分のコードをどのように見えるように更新しました。 –

関連する問題