2015-01-14 2 views
1

Добрый вечер,Выберите параметры в форме из другой таблицы

У меня следующая ситуация:

У меня есть 2 таблицы:

Таблица 1 (Person) Имя Адрес Пол

Таблица 2 (Пол) ID Пол (цифры: мужчина/женщина/не указано)

Я сделал форму в PHP, чтобы заполнить имя и адрес и другую форму для управления полами.

Что я хочу сделать, это следующее: Я хочу, чтобы связать столбец Пол из таблицы 1, в Колум секс в таблице 2.

Я хочу создать выпадающее меню, в моей форме PHP, чтобы показать сексуальные ценности из таблицы 2, выберите секс и свяжите идентификатор этого лица с идентификатором пола.

Как я могу сделать это возможным?

Редактировать: Моя цель, если я изменяю имя пола: Like, Man, to Male, мне не нужно редактировать все мои лица.

Мой код прямо сейчас:

<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> 
<? 
    } 
?> 

EDIT: Я добавил массив и я звоню значения с эхом, он показывает пустое выпадающее меню, что я делаю неправильно?

Это все о: «Geslacht», у меня есть дополнительная таблица, где я определяю полов (geslacht).

Поэтому я хочу показать значения table2 в этой форме. Когда я выберу это значение, я хочу, чтобы он «связал» его с идентификатором человека, поэтому всякий раз, когда я меняю название пола, он меняется у человека ,

+2

Написав какой-то код? Можете ли вы поделиться тем, что вы пробовали? –

+0

В какой области у вас проблемы? Что вы пробовали? Эти данные, приложение и презентация имеют 3 слоя. –

+0

Прошу прощения, я добавил свой код, я пытаюсь ответить на другой ответ, который я получил с LEFT join. –

ответ

2

Для вашего первого пункта вы можете добавить LEFT JOIN в свой стол.

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

Tipp: Сделайте ваши имена полей более четкими, не используйте секс как поле и поле.

Вы можете получить более подробную информацию по базе данных Структур, вы можете получить некоторые хорошие подсказки, если вы Google Normaliation/Database Relations

О вас seccond точки:

Сделать запрос, чтобы получить все записи Sex таблицы в массив. Затем сделайте Loop в PHP и вставьте в это поле для каждой записи в массиве <option value="_ID_">_SEXTitle_</option>

Когда вы получаете форму назад, вам просто нужно ввести выбранное значение в поле Sex Field of Person Table.

EDIT: вам нужно изменить от входа до выбора: Witout динамики 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 Array непосредственно в базе данных! По крайней мере, избегайте записей до Prevent SQL Injection

+0

Большое спасибо, я был добр в этом направлении, но я не был уверен, как его использовать .. Я собираюсь попробовать! –

+0

Я не знаю, насколько вы молоды, но вы можете посмотреть на эту сторону [PHP-Kurs] (http://www.php-kurs.com/relationen-tabellen-verbinden.htm) Вам не нужно ничего менять в своем заявлении о вводе –

+0

Хорошо, спасибо за советы, я редактировал свой код, чтобы показать значения из таблицы: Пол в выпадающем меню, отображается выпадающее меню, но не отображается ценности. Я редактировал свой стартовый пост. Я просмотрел различные учебники, чтобы показать значения в массиве. Я что-то упускаю? –

Смежные вопросы