2013-05-13 2 views
3

Я практиковал mysql, а затем я столкнулся с проблемой, которую я не могу решить. Я делаю большую форму, которая сможет хранить информацию от пользователя в базе данных. Мне удалось создать и сохранить данные из простых полей формы, таких как Name, Country, Age, Interest и т. Д., Используя mysql и php.Смутно о хранении данных из этой формы

У меня есть таблица с именем в моей базе данных users, которые имеют приблизительные 15 колонки для различных данных, таких как имя, страна, возраст и т.д.

Теперь я добавил это от поля к My из запутанных и о том, как хранить данные из этого поля.

Вот IMG моей формы ....

see the pic

Теперь, если я создаю столбец emp_name то, как я буду хранить 1-4 значения для каждого пользователя с 5 полей каждого?

Даже если я создаю другую таблицу ex - emp_history, то как хранить данные из этой формы для каждого пользователя?

+0

Я думаю, что вы ищете отношения друг к другу? – shapeshifter

ответ

0

Создайте две таблицы

tbl_more_detail (здесь вы храните все для информации 1-4)

ID (PK)
emp_id
emp_name
emp_country
emp_position
emp_from
emp_to

tbl_emp_detail (здесь вы даете ссылку на выше идентификаторы, будет иметь 4 строки с различным detail_id)

ID (PK)
emp_id
detail_id (FK см tbl_more_detail. id)

ПРИМЕЧАНИЕ: чтобы предотвратить повторяющиеся записи, создать уникальный ключ INDEX на (emp_id, detail_id)

+0

thx для анс .. ну, текстовые поля имени работодателя, страны, должности и т. Д. Будут иметь одинаковое имя и идентификатор? – fahim74

+0

Сохраните все данные в 'more_info', добавьте' emp_id' в эту таблицу. – diEcho

1

Ваша форма должна выглядеть так:

<form name="xyz" method="post"> <table> <tr> <td>Emp name</td><td>country</td><td>position</td> </tr> <tr> <td> <input type="text" name="data[emp_name][]" value="" /> <input type="text" name="data[country][]" value="" /> <input type="text" name="data[position][]" value="" /> </td> </tr> <tr> <td> <input type="text" name="data[emp_name][]" value="" /> <input type="text" name="data[country][]" value="" /> <input type="text" name="data[position][]" value="" /> </td> </tr> <tr> <td> <input type="text" name="data[emp_name][]" value="" /> <input type="text" name="data[country][]" value="" /> <input type="text" name="data[position][]" value="" /> </td> </tr> </table> 

when you post the form, you will get the value in php file like this: 

$arr = $_POST['data']; $cnt = count($arr['emp_name']); 

for($i=0; $i<$cnt; $i++) { 
    $name = $arr['emp_name'][$i]; 
    $country = $arr['country'][$i]; 
    $position = $arr['position'][$i]; 
    // insert sql 
    $sql = insert into emp_table(name, country, position) values('".$name."', '".$country."', '".$position."'); } 
+0

хорошо кажется для начинающих, как я ... но bro skparwal у вас есть образец сценария или вы можете порекомендовать любой скрипт процессора формы, откуда я мог бы изучить код? – fahim74

+0

Очень просто. вам просто нужно создать текстовые элементы в форме массива. например, skparwal

+0

проверить эту ссылку. может быть, это может вам помочь. [php easy step] (http://www.phpeasystep.com/mysql/10.html) – skparwal

0

Сначала нужно создать таблицу базы данных:

create table emp_table { 
    id int(10) auto_increment primary key, 
    emp_name varchar(100), 
    country varchar(50), 
    position varchar(50) 
} 

теперь создайте файл php, который включает в себя код:

<h2>Insert new records</h2> 
<form name="emp" method="post"> 
<table border="1"> 
<tr> 
    <td>Employee name</td> 
    <td>Country</td> 
    <td>Position</td> 
</tr> 
<tr> 
    <td><input type="text" name="data[emp_name][]" value="" /></td> 
    <td><input type="text" name="data[country][]" value="" /></td> 
    <td><input type="text" name="data[position][]" value="" /></td> 
</tr> 
<tr> 
    <td><input type="text" name="data[emp_name][]" value="" /></td> 
    <td><input type="text" name="data[country][]" value="" /></td> 
    <td><input type="text" name="data[position][]" value="" /></td> 
</tr> 
<tr> 
    <td><input type="text" name="data[emp_name][]" value="" /></td> 
    <td><input type="text" name="data[country][]" value="" /></td> 
    <td><input type="text" name="data[position][]" value="" /></td> 
</tr> 
<tr> 
    <td><input type="text" name="data[emp_name][]" value="" /></td> 
    <td><input type="text" name="data[country][]" value="" /></td> 
    <td><input type="text" name="data[position][]" value="" /></td> 
</tr> 
</table> 
</form> 

<?php 
mysql_connect('localhost', 'dbuser', 'dbpassword'); 
mysql_select_db('db_name'); 

if(isset($_POST['data'])) { 
    $cnt = $_POST['data']['emp_name']; 

    for($i=0; $i<$cnt; $i++) { 
     $name = $arr['emp_name'][$i]; 
     $country = $arr['country'][$i]; 
     $position = $arr['position'][$i]; 
     // insert sql 
     $sql = "insert into emp_table(name, country, position) values('".$name."', '".$country."', '".$position."')"; 
     mysql_query($sql); 
    } 
} 

?> 
<br/><br/> 
<h2>Existing Records</h2> 
<table border="1"> 
<tr> 
    <td>Employee name</td> 
    <td>Country</td> 
    <td>Position</td> 
</tr> 
<?php 
$str = ''; 
$objQuery = mysql_query('select * from emp_table'); 
while($result = mysql_fetch_array($objQuery)) 
{ 
    $str .= '<tr>'; 
    $str .= '<td>'.$result['emp_name'].'</td><td>'.$result['country'].'</td><td>'.$result['position'].'</td>'; 
    $str .= '</tr>'; 
} 
echo $str; 
?> 
</table> 

Теперь запустите приложение. Вы можете увидеть результат на той же странице (с существующими записями).

+1

Большое спасибо за подробный анс .. ваш последний представленный код почти решает проблему, ожидая, что он сохранит пустое значение, когда я добавил действие формы, и кнопку отправки на ваш код .... – fahim74

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