2015-01-15 33 views
0

我已經制作了一些插入到manualy的文本字段。通過表單使用LEFT JOIN插入到MySQL

所有這些領域都充滿在表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中更改數值,比如像:改變男人男,每個人在表1中,將值Man更改爲Male。

表1結構: 是PersonID姓名性別 約翰鏈接表2

表2結構: ID性別 1男 2女

我被告知使用LEFT加入這個,但我迷路了,我不知道從哪裏開始。任何人都可以給我開始/擡起頭來嗎?

我當前的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()); 

回答

0

所以加入不發揮作用,直到你SELECT ING數據回:)

表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而不是'男性'和'女性'。

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'; 

然後在結果集中,你有你的正常數據的PLUS無論是從聯table2,即gender_name

希望這是有道理的。

+0

謝謝!我覺得我有點困惑,我只需要最後一步瞭解「左聯合」。我已經做到了,再次感謝! –