晚上好,
我有以下情况:
我有两张桌子:
表1(人) 名称 ADRESS 性别
表2(性别) ID 性别(价值观:男/女/未知)
我已经用PHP填写了一个表格来填写姓名和地址,以及另一种管理性别的表格。
我想要做的是以下内容:我想将表1中的Sex列链接到表2中的colum sex。
我想在我的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“链接”,所以每当我改变性别标题时,它就会改变。
答案 0 :(得分:2)
对于您的第一个点,您可以在表格中添加LEFT JOIN。
LEFT JOIN <table2> ON <table1>.<field> = <table2>.<field>
LEFT JOIN Sex ON Person.Sex = Sex.ID
Tipp:让你的字段名称更清晰,不要使用Sex作为表和字段名称。
您可能希望获得有关数据库结构的更多信息,如果您使用Google 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数组中获取安全数据!至少将条目转义为Prevent SQL Injection