从其他表中选择表单中的选项


Select options in form from other table

晚上好,

我有以下情况:

我有2张桌子:

表1(人)名字地址性

表2(性别)身份证性别(值:男性/女性/无亲)

我在PHP中制作了一个表格来填写姓名和地址,并制作了一个不同的表格来管理性别。

我想

做的是:我想将表 1 中的 列链接到表 2 中的 colum。

我想在我的 php 表单中创建一个下拉菜单,以显示表 2 中的性别值,选择一个性别,并将该人员 ID 链接到性别 ID。

我怎样才能做到这一点?

编辑:我

的目的是,如果我改变一个性别名称:喜欢,男人,到男性,我不必编辑我所有的人。

我现在的代码:

    <a href="index.php">Home</a><br>
<a href="personeninvoeren.php">Personen invoeren</a><br>
<a href="personeninvoeren.php">Voertuigen invoeren</a>
<a href="beheergeslacht.php">Geslacht beheren</a>
<?php 
mysql_connect('localhost','shopqvat_rdw','PASSWORD'); 
mysql_select_db('shopqvat_rdw') or die (mysql_error()); 
if(isset($_POST['verzenden'])) 
  { 
    $persoon_voornaam = $_POST['voornaam'];
  $persoon_tussenvoegsel = $_POST['tussenvoegsel'];
  $persoon_achternaam = $_POST['achternaam'];
  $persoon_straatnaam = $_POST['straatnaam'];
  $persoon_huisnummer = $_POST['huisnummer'];
  $persoon_toevoeging = $_POST['toevoeging'];
  $persoon_bsnnummer = $_POST['bsnnummer'];
  $persoon_geboortedatum = $_POST['geboortedatum'];
  $persoon_geslacht = $_POST['geslacht'];
  $sqlgeslacht = "SELECT * FROM geslacht";
$resultgeslacht = mysql_query($sqlgeslacht);
    mysql_query("INSERT INTO Persoon (voornaam, tussenvoegsel, achternaam,
        straatnaam, huisnummer, toevoeging, bsnnummer, geboortedatum, geslacht) VALUES ('".$persoon_voornaam."', '".$persoon_tussenvoegsel."', '".$persoon_achternaam."',
         '".$persoon_straatnaam."', '".$persoon_huisnummer."', '".$persoon_toevoeging."', '".$persoon_bsnnummer."', '".$persoon_geboortedatum."', '".$persoon_geslacht."')") or die (mysql_error()); 
    echo 'Persoon succesvol toegevoegd!'; 
  } 
else 
  { 
?> 
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
<div>Voornaam <input type='text' name='voornaam' id='voornaam' /></div><br>
<div>Tussenvoegsel <input type='text' name='tussenvoegsel' id='tussenvoegsel' /></div><br>
<div>Achternaam <input type='text' name='achternaam' id='achternaam' /></div><br>
<div>Straatnaam <input type='text' name='straatnaam' id='straatnaam' /></div><br>
<div>Huisnummer <input type='text' name='huisnummer' id='huisnummer' /></div><br>
<div>Toevoeging <input type='text' name='toevoeging' id='toevoeging' /></div><br>
<div>BSN Nummer <input type='text' name='bsnnummer' id='bsnnummer' /></div><br>
<div>Geboortedatum <input type='text' name='geboortedatum' id='geboortedatum' /></div><br>
<div>Geslacht <?php echo"<select name='geslacht' id='geslacht' >";
    while ($row = mysql_fetch_array($resultgeslacht)) {
    echo "<option value='" . $row['geslacht'] ."'>" . $row['geslacht'] ."</option>";
}
echo "</select>";?></div><br/>
<input type="submit" name="verzenden" value="verzenden">
</form> 
<? 
  } 
?>

编辑:我添加了一个数组,我正在用回声调用值,它显示一个空的下拉菜单,我做错了什么?

这一切都是关于:"Geslacht",我有一个额外的表格,我在其中定义性别(geslacht)。

所以我想以这种形式显示 table2 的值。当我选择该值时,我希望它将其与人员ID"链接",因此每当我更改性别头衔时,它都会在人身上更改。

对于您的第一个点,您可以在表格中添加一个左连接。

LEFT JOIN <table2> ON <table1>.<field> = <table2>.<field>    
LEFT JOIN Sex ON Person.Sex = Sex.ID

提示:使您的字段名称更清晰,不要将性别用作表和字段名称。

你可能想通过数据库结构获得更多的信息,如果你谷歌Normaliation/Database Relations你可以得到一些很好的提示

关于你 安全点:

进行查询以将性别表的所有记录放入数组中。然后在 PHP 中执行一个循环,并插入数组<option value="_ID_">_SEXTitle_</option>中每个条目的选择字段

当你得到你的表格时,你只需要在人物表的性别字段中输入选择值。

编辑:您需要从输入更改为选择:考虑到PHP/MySQL的动态,你的纯HTML代码应该看起来像这样:

<div>Geslacht <select type='text' name='geslacht' id='geslacht' >
    <option value="1">Male</option>
    <option value="2">Female</option>
    <option value="3">None ;)</option>
</select></div><br/>

Tipp2:永远不要直接在数据库中保护来自 POST/GET 数组的数据!至少转义条目以防止 SQL 注入