对于存储此表单中的数据感到困惑

时间:2013-05-13 04:59:58

标签: php mysql database forms

我一直在练习mysql然后我遇到了一个我无法解决的问题。 我正在制作一个大型表单,可以在数据库中存储用户的信息。 我已经设法使用mysql和php从名称,国家,年龄,兴趣等简单的表单字段中创建和存储数据。

我的数据库中有一个名为users的表,其中有大约15列用于不同的数据,如姓名,国家/地区,年龄等。

现在我已将此字段从字段添加到我的内容,并对如何存储此字段中的数据感到困惑。

这是我形式的img ....

see the pic

现在,如果我创建一个列emp_name,那么我将如何为每个用户存储1-4个值,每个用户有5个字段?

即使我创建了一个不同的表ex - emp_history,那么如何为每个用户存储此表单中的数据?

3 个答案:

答案 0 :(得分: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."'); }

答案 1 :(得分:0)

创建两个表

tbl_more_detail(这里存储所有信息1-4)

  

id(PK)
   EMP_ID
   EMP_NAME
   emp_country
   emp_position
   emp_from
   emp_to

tbl_emp_detail(这里你给出上面的id的引用,将有4行具有不同的detail_id)

  

ID(PK)
  EMP_ID
  detail_id(FK请参阅tbl_more_detailid

注意:要防止重复输入,请在(emp_id,detail_id)上创建UNIQUE KEY INDEX

答案 2 :(得分: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>

现在运行您的应用程序。您可以在同一页面上查看结果(包含现有记录)