簡體   English   中英

從一個表創建一個下拉列表,然后將所選值輸入到另一個表中(相同的MySQL DB)

[英]Create a dropdown list from one table and entering selected value into another table (same MySQL DB)

我試圖顯示存儲在mySQL數據庫的查找表中的所有國家(“國家”)的下拉列表,讓用戶選擇他的國家,然后將該數字輸入會員列表。

下面的代碼實際上用新記錄更新了成員表,但是輸入到land列的值是字符串“ $ landselect”(不是相應的/選定的國家/地區名稱)。

我懷疑在HTML部分的SELECT語句和PHP部分的INSERT語句之間傳遞所選值(即國家/地區名稱)的方式出了問題,但是我無法理解關於如何將正確的值(選定的國家名稱)傳遞給INSERT語句。

任何想法和評論表示贊賞。


<html>
<head>
</head>
<body>

<form action="Medlem 140112b.php" method="POST">
Username: <input type="text" name="username"><br />
Password: <input type="text" name="password"><br />
Personnummer: <input type="text" name="personnummer"><br />
First name: <input type="text" name="firstname"><br />
Last name: <input type="text" name="lastname"><br />
Postadress1: <input type="text" name="postadress1"><br />
Postadress2: <input type="text" name="postadress2"><br />
Postnummer: <input type="text" name="postnummer"><br />
Ort: <input type="text" name="ort"><br />
<!---Land: <input type="text" name="land"><br />--->
Land: <SELECT name="land"> <OPTION VALUE=0>Choose
  <?php 
 $con = mysql_connect("localhost","root","");
 mysql_select_db ("cf", $con);
 $result = mysql_query("SELECT Land FROM land",$con);
 while($row = mysql_fetch_array($result))
 {
  $landselect=$row["Land"];
  echo '<OPTION VALUE=\'$landselect\'>'.$landselect.'</OPTION>';
  }
  mysql_close ($con); //stänger connectio till DB system;
 ?>
</SELECT>   
<br />
Epost: <input type="text" name="epost"><br />
Telefon: <input type="text" name="telefon"><br />
TC_approval: <input type="text" name="tc_approval"><br />
<input type="submit" name="submit">
</form>  

<?php
$con = mysql_connect("localhost","root","");
mysql_select_db ("cf", $con);
if (mysql_error())
{
echo "Failed to connect to MySQL: " . mysql_error();
} else echo "Koppling till DB gick bra!";
if (isset ($_POST['submit'])) {
$sql = "INSERT INTO medlem(Username, Password, Personnummer, Firstname, Lastname,    Postadress1, Postadress2, Postnummer, Ort, Land, Epost, Telefon, TC_approval)  VALUES('$_POST[username]','$_POST[password]','$_POST[personnummer]','$_POST[firstname]','$_POST[lastname]','$_POST[postadress1]','$_POST[postadress2]','$_POST[postnummer]  ','$_POST[ort]','$_POST[land]','$_POST[epost]','$_POST[telefon]','1')"; 
echo $sql;
mysql_query($sql, $con); //Exekverar tabellskapandet; 
}
mysql_close ($con); //stänger connectio till DB system;
?>

</body>
</html>

更改此行:

echo '<OPTION VALUE=\'$landselect\'>'.$landselect.'</OPTION>';

echo '<OPTION VALUE=\'' . $landselect . '\'>'.$landselect.'</OPTION>';

如果使用雙引號,則您當前的代碼將起作用,但是單引號不是魔術引號。

代替

echo '<OPTION VALUE=\'$landselect\'>'.$landselect.'</OPTION>';

嘗試這個

echo "<OPTION VALUE='$landselect'>$landselect</OPTION>";

並且也嘗試使用mysqli_real_escape_string() 您當前的代碼易於進行sql注入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM