2011-04-28 154 views
0

我想要做的是這樣的:當我從下拉列表中選擇顏色時,它將被提交到數據庫,並進入汽車表。我已經建立了數據庫。插入數據到數據庫

這是HTML代碼的一部分。

<form action="rinnad.php" method="post"> 
Car color: 
<select name="Rinnad"> 
<option>red</option> 
<option>blue</option> 
<option>green</option> 
</select> 
<input type="submit" value="lisa" /> 
</form> 

這裏是我使用進入汽車顏色到數據庫中的PHP代碼:

<?php 
$connect = @mysql_connect ("localhost", "root", "") or die("Fail!!!! :D:D:D"); 
mysql_select_db("tibid") or die("there is no such db"); 
if($connect){ 
    echo "connected to db"; 
}else{ 
    echo "didnt connect to db"; 
} 
$car = "red" 
$query = mysql_query("insert into test values('','$car')"); 
?> 

什麼我需要做什麼? 謝謝。

+1

你的問題是什麼?什麼不行? – 2011-04-28 20:04:22

+0

@Pekka所有的汽車似乎都是紅色的:)但我同意一個實際的問題或問題描述會很好。 – jeroen 2011-04-28 20:06:49

回答

1

首先,你需要分配值的選項:

<option value="red">red</option> 

http://www.w3schools.com/TAGS/tag_option.asp

之後您需要將表單中的值分配給您的$ car變量:

$car = $_POST['Rinnad']; 

,或者更牢固,具有一定的保護,防止SQL-注射:

$car = mysql_real_escape_string($_POST['Rinnad']); 
+3

正如我最近了解到的,[w3schools可能是最好的避免...](http://w3fools.com/):) – 2011-04-28 20:14:50

+0

缺少$ rinnad = mysql_real_escape_string($ _ POST ['Rinnad']);工作得很好,謝謝。 – rookie 2011-04-28 20:16:03

+0

謝謝大開眼界djacobson :) – vichle 2011-04-28 20:20:54

0

放一個;此行之後

$car = "red"; 
0

你將不得不讓貼值:

$car = mysql_real_escape_string($_POST['Rinnad']); 
0

你得有

$car = "red"; 
$query = mysql_query("insert into test values('','$car')"); 

這裏的錯誤,你did'nt指定字段名到$汽車指定,我給汽車id的auto_increment .. ?? THN您的代碼將是

$query = mysql_query("insert into test (color)values('$car')"); 

你neednot指定自動增量field.default它可以被添加。