3

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

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

现在我已将这个 from 字段添加到我的 from 中,并且对如何存储该字段中的数据感到困惑。

这是我的表格的img....

看图片

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

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

4

3 回答 3

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."'); }
于 2013-05-13T05:47:49.063 回答
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>

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

于 2013-05-13T07:11:47.283 回答
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_detail. id)

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

于 2013-05-13T05:08:10.237 回答