Select 选项形式来自其他 table
Select options in form from other table
晚上好,
我有以下情况:
我有 2 个 table:
Table 1(人)
姓名
地址
性别
Table 2(性别)
ID
性别(值:Male/Female/Unkown)
我在 PHP 中做了一个表格来填写姓名和地址,还有一个不同的表格来管理性别。
我想要做的是:我想 link table 1 中的性别列,到 table 2.
中的性别列
我想在我的 php 表单中创建一个下拉菜单,以显示来自 table 2、select 性别和 link 那个人的性别值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",我有一个额外的 table,我在其中定义性别 (geslacht)。
所以我想以这种形式显示 table2 的值。当我选择该值时,我希望它与人 ID 一起 "link",所以每当我更改性称,因人而异
对于您的第一个点,您可以将 LEFT JOIN 添加到您的 Table。
LEFT JOIN <table2> ON <table1>.<field> = <table2>.<field>
LEFT JOIN Sex ON Person.Sex = Sex.ID
提示:让您的字段名称更清晰,不要使用 Sex 作为 table 和字段名称。
您可能想获得更多有关数据库结构的信息,如果您 google Normaliation/Database Relations
,您可以获得一些很好的提示
关于你的第二点:
进行查询以将性别 Table 的所有记录放入数组中。然后在 PHP 中循环并为数组 <option value="_ID_">_SEXTitle_</option>
中的每个条目插入 select 字段
当您取回表格时,您只需将 select 值输入到您的性别字段 Table。
编辑:
您需要将输入更改为 select:
如果没有 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
晚上好,
我有以下情况:
我有 2 个 table:
Table 1(人) 姓名 地址 性别
Table 2(性别) ID 性别(值:Male/Female/Unkown)
我在 PHP 中做了一个表格来填写姓名和地址,还有一个不同的表格来管理性别。
我想要做的是:我想 link table 1 中的性别列,到 table 2.
中的性别列我想在我的 php 表单中创建一个下拉菜单,以显示来自 table 2、select 性别和 link 那个人的性别值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",我有一个额外的 table,我在其中定义性别 (geslacht)。
所以我想以这种形式显示 table2 的值。当我选择该值时,我希望它与人 ID 一起 "link",所以每当我更改性称,因人而异
对于您的第一个点,您可以将 LEFT JOIN 添加到您的 Table。
LEFT JOIN <table2> ON <table1>.<field> = <table2>.<field>
LEFT JOIN Sex ON Person.Sex = Sex.ID
提示:让您的字段名称更清晰,不要使用 Sex 作为 table 和字段名称。
您可能想获得更多有关数据库结构的信息,如果您 google Normaliation/Database Relations
关于你的第二点:
进行查询以将性别 Table 的所有记录放入数组中。然后在 PHP 中循环并为数组 <option value="_ID_">_SEXTitle_</option>
当您取回表格时,您只需将 select 值输入到您的性别字段 Table。
编辑: 您需要将输入更改为 select: 如果没有 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