0

選択したドロップダウンアイテムに応じて車の名前が含まれるドロップダウンリストを持つ小さなプログラムがあり、その値をデータベースに保存したいと思います。私はこれを行う方法の一般的な考えを持っていると思いますが、私のコードは私のデータベースに値を保存していません。

私のデータベースには3つのフィールドがあります:'id'(type int(11))、'car_val'(type int(11))、'name'(type text)

<?php

//////connecting to our sql server
$db_connect=mysql_connect("xxxxx", "xxxxxx", "xxxxxx")     or die("not logged in");
//////now selecting our database
$db_select=mysql_select_db("xxxxxx") or die(mysql_error());
////this query is used the first time the page loads
$query = mysql_query("SELECT * FROM car "); 

echo '<form action="drop_down_car_test.php?" method="GET">';
echo '<table border = \"1\">';
echo '<tr><td>id</td><td>car</td><td>name</td>';

while($row=mysql_fetch_array($query)){
$currentID=$row['id'];

echo "<tr><td>";
echo $row['id'];

echo "</td><td>";
echo "<select name='carDropDown".$row['id']."' >;
<option value=\"1\">ford</option>;
<option value=\"2\">toyota</option>;
<option value=\"3\">gmc</option>;
</select>";

$carVal=$_GET['carDropDown'.$row['id']];
echo $carVal;

mysql_query("INSERT INTO car (car_val) VALUE ($carVal) WHERE id=$currentID ");

echo "</td><td>";
echo $row['name'];
echo "</td><td>";
}////end while
echo"<table>";

echo '<td bgcolor=#7FFF00><input type="submit" value="Update"></td>';
echo "</form>";



?>
4

1 に答える 1

1

挿入にwhere句を使用していますが、これは正しくありません。

IDに自動インクリメントフィールドを使用する必要があります。その場合は、IDを指定しないか、自分で指定する必要があります。いずれにせよ、挿入ステートメントは常に次のようになります

insert into tablename (column1name, col2name) values (value1, value2)

すべての列のデータを正しい順序で提供する場合を除いて、データを短くすることができますが、常に上記の構文を使用することをお勧めします。

自動インクリメントフィールドを使用しない場合は、IDを提供するのはあなた次第ですが、以前の見解で述べた形式の範囲内です。

于 2012-12-08T18:03:16.203 に答える