2016-09-16 10 views
0

私は自分のコードに問題があります。チェックボックスをクリックすると、それをやりたかったし、受け入れボタンでいくつかの情報がSQLデータベースに挿入されます。SQLメッセージテーブル 'testowanie.id'が存在しません

私のコードがあります:

<form action="checkboxes.php" method="post"> 
 
<input type="checkbox" name="chk1"> 4K </input> 
 
<input type="submit" name="Submit" value="Submit"></input> 
 
</form> 
 

 
<?php 
 
/* Database connection */ 
 

 
$sDbHost = 'localhost'; 
 
$sDbName = 'testowanie'; 
 
$sDbUser = 'root'; 
 
$sDbPwd = ''; 
 
$Conn = mysql_connect ($sDbHost, $sDbUser, $sDbPwd); 
 
mysql_select_db ($sDbName, $Conn) 
 

 
$checkbox1 = $_POST['chk1']; 
 
if ($_POST["Submit"]=="Submit") { 
 
for ($i=0; $i<sizeof($checkbox1); $i++) { 
 
$query="INSERT INTO cena (name) VALUES ('".$checkbox1[$i]."')"; 
 
mysql_query($query) or die (mysql_error()); 
 
    } 
 
echo "Record is inserted"; 
 
} 
 
?>

しかし、私は、これは動作しません]ボタンをクリックして、テキストは「テーブル 『testowanie.cena』が存在しません」と表示されます問題はテーブルが実際に存在することです。誰かが私を助けることができる場合

enter image description here

だから、それは素晴らしいだろう。

+0

'$ _POST ['chk1']'は配列ではありません。 HTMLに 'name =" chk1 [] "'を使って配列にする必要があります。 – Barmar

+0

あなたのチェックボックスには有効なものがありません。 '$ _POST ['chk1']'は、チェックされた全てのボックスに対して ''オンになります。 – Barmar

答えて

0

表の名前はmonitorycenaは表の列です。 name列はありません。したがって、それはする必要があります:

$query="INSERT INTO monitory (cena) VALUES ('".mysql_real_escape_string($checkbox1[$i])."')"; 

また、mysql_real_escape_string() SQLインジェクションを防ぐために使用する必要があります。しかし、mysql拡張機能は時代遅れであり、現行バージョンのPHPから削除されているため、mysqliまたはPDOに変換して準備済みクエリを使用した方が最適です。

+0

ありがとうございます:) –

関連する問題