2017-05-29 13 views
0

私は、SQLテーブルにポスト選択結果

をトラブルセレクト機能の結果を掲示が生じています、私は

、(以下のコードを参照してください)SQLテーブルからデータを引き出し選択機能を持っています
label for="test">Test:</label><br> 
    <select id="test" name="test"> 
<?php 
    $test = mysql_query("SELECT date FROM test WHERE selected is null"); 
    while ($row = mysql_fetch_array($test)){ 
    echo '<option value="'. $row['value'] .'">'. $row['date'] .'</option>'; 
    }?> 
    </select> 
フォームが送信されました

は、それが

<?php 
$name = $_POST['name']; 
$phone = $_POST['phone']; 
$email = $_POST['email']; 
$test = $_POST['test']; 
$comment = $_POST['comment']; 

$sql = "INSERT INTO submit (name,phone,email,test,comments) 
VALUES 
('$name','$phone','$email','$test','$comment')"; 

if (!mysql_query($sql)) { 
    die('Error: ' . mysql_error()); 
} 

mysql_close(); 
?> 

以下のコードが含まれてsumbit.phpと呼ばれる別のページをロードする私の問題であるテストフィールドdoesntの更新(Tの残りの部分彼のフィールドはテキストフィールドであり、送信テーブルで更新します)、誰かが私のコードに間違っていることをアドバイスしたり、SQLテーブルに選択ボックスの結果を投稿するより良い方法をアドバイスしてください。

+0

これは現在の問題には役立たないかもしれませんが、INSERTクエリには_preparedステートメントと_placeholders_を使用することをお勧めします。 「** PHPのタグページ」(https://stackoverflow.com/tags/php/info)で、「SQLインジェクションから私のデータベースクエリーを安全にするにはどうすればいいですか?」の下で、これを行う方法に関するいくつかのリンクがあります。 *" セクション。 – summea

+0

テスト用にDBスキーマを指定してください。また、mysqlエラーをチェックしてください – CoderSam

答えて

0

最初にいくつかのアドバイスがありますが、PDOとプリペイドド・ステートメントについて学ぶ必要があります。具体的な方法については、this tutorialをお読みください。

あなたはそれなしで$row['value']は常にこれは常に空であることを$_POST['test']につながる、あなたのoptionタグが値を持たないようにすることを原因とnullに評価されます、あなたのSQLステートメントにvalueフィールドを含める必要があります。

関連する問題