使用LEFT JOIN通过Form插入MySQL

时间:2015-01-15 20:12:20

标签: php mysql join insert

我制作了一个包含一些手工插入文本字段的表单。

表1中填写了所有这些字段,但1.我已经制作了一个dropmenu菜单,用于调用表2中的信息。

<div>Geslacht</div>
<select name='geslacht'>
<?php 
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { ?>
    <option value="<?php echo $line['Geslacht'];?>"> <?php echo $line['Geslacht'];?> </option>

到目前为止,下拉菜单确实选择了信息。

我想要完成的事情:

我想将表1中的字段链接到表2中的字段,因此当我更改表2中的值时,例如:将man更改为Male,表1中的每个Person,获取值Man更改为Male

表1结构: PersonID名称性别 1 John 链接到表2

表2结构: ID性别 1名男性 2女

我被告知要使用LEFT JOIN,但是我输了,我不知道从哪里开始这个。谁能给我开始/抬头?

我当前的INSERT代码是:

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());

1 个答案:

答案 0 :(得分:0)

因此,在您重新SELECT数据之前,加入不会发挥作用:)

表1字段:

id INT(11) UNSIGNED AUTO_INCREMENT
name VARCHAR(100) NOT NULL
gender INT(11) UNSIGNED

表2字段:

gender_id INT(11) UNSIGNED AUTO_INCREMENT
gender_name VARCHAR(20) NOT NULL

因此,我们假设您在表2中有两个条目:1 = male2 = female

当您插入表1时,您将使用1和2代替男性&#39;和女性。&#39;

INSERT INTO table1 (name, gender) VALUES ('Josh', 1);

当您转发SELECT信息时,您将使用LEFT JOIN

SELECT * FROM table1 t1 LEFT JOIN table2 t2 ON t1.gender = t2.gender_id WHERE t1.name = 'Josh';

然后在您的结果集中,您将拥有所有正常数据加上table2链接的任何内容,即gender_name

希望这有点道理。