我一直在练习mysql然后我遇到了一个我无法解决的问题。 我正在制作一个大型表单,可以在数据库中存储用户的信息。 我已经设法使用mysql和php从名称,国家,年龄,兴趣等简单的表单字段中创建和存储数据。
我的数据库中有一个名为users
的表,其中有大约15列用于不同的数据,如姓名,国家/地区,年龄等。
现在我已将此字段从字段添加到我的内容,并对如何存储此字段中的数据感到困惑。
这是我形式的img ....
现在,如果我创建一个列emp_name
,那么我将如何为每个用户存储1-4个值,每个用户有5个字段?
即使我创建了一个不同的表ex - emp_history
,那么如何为每个用户存储此表单中的数据?
答案 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_detail
。id
)
注意:要防止重复输入,请在(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>
现在运行您的应用程序。您可以在同一页面上查看结果(包含现有记录)