PHP - 在while循环中插入多行
我试图在一个while循环中使用implode插入多行,但似乎无法使它工作。请帮助。我想插入多个名为“weight”的值。像值30,20,15,10,5和其余的emp_id和task_id。原谅我是一个新手,但请裸露在我身上。我还在学习。PHP - 在while循环中插入多行
page1.php中
$sql = mysql_query("SELECT
task_tbl.task_id,
task_tbl.task_name,
task_tbl.task_sem,
task_tbl.task_yr,
task_tbl.post_id,
post_tbl.post_id,
post_tbl.post_name AS ppost_name
FROM
task_tbl
LEFT JOIN
post_tbl
ON
task_tbl.post_id = post_tbl.post_id
WHERE
task_sem = '$sem'
AND
task_yr = '$yr'
ORDER BY
task_id ASC");
echo '<form action = "upds_peval.php" name = "add" method = "post">';
while($row = mysql_fetch_assoc($sql)){
echo "<br/>";
echo "<b>Employee ID No.:</b>";
echo '<input size = "2" type = "text" name = "emp_id'.$id.'" value = "';
echo $_POST['emp_id'];
echo '"/>';
echo "<br/>";
echo "<b>Work/Activity ID No.:</b> ";
echo '<input size = "2" type = "text" name = "task_id'.$row['task_id'].'" value = "';
echo $row['task_id'];
echo '"/>';
echo "<br/>";
echo "<b>Work/Activity:</b> ";
echo $row['task_name'];
echo "<br/>";
echo "<b>Weight:</b> ";
echo '<input size = "1" type="text" name="weight" value = ""/>';
echo "%";
echo "<br/>";
}
echo '<input type="submit" name="submit" value="ADD"/>';
echo "</form>";
输出会是这样:
员工ID编号:1001 工作/活动号2002: 工作/活动:监督维护和计算机的故障排除 重量:[__]%
员工ID号:1001 工作/活动ID号:2003 工作/活动:监督软件安装特征研和维护 重量:[__]%
员工ID编号:1001 工作/活动ID号:2004年 工作/活动:维护,监控,并排除虚拟终端 重量:[__]%
|提交消息|
使page2.php
mysql_connect ("localhost", "root","") or die (mysql_error());
mysql_select_db ("emp_db0");
if(isset($_POST['submit'])){
$_POST['weight'];
$vals=implode(",",$_POST);
error_reporting(E_ALL^E_NOTICE);
mysql_query("INSERT INTO peval_tbl(weight,task_id,emp_id) VALUES('$vals')");
echo "<br/>";
echo "You have successfully added work/activities!";
echo "<br/>";
}
根据我对您的问题的印象,您想要一个可扩展的表单,您可以在其中以一个名称访问其所有实例?
形式样品的第一个实例:
<input size = "2" type = "text" name = "emp_id[]" value = "1">
<input size = "2" type = "text" name = "task_id[]" value = "5001">
<input size = "2" type = "text" name = "weight[]" value = "50">
第二个实例样本:
<input size = "2" type = "text" name = "emp_id[]" value = "2">
<input size = "2" type = "text" name = "task_id[]" value = "5003">
<input size = "2" type = "text" name = "weight[]" value = "30">
这将您的文章转换成数组
访问:
$var_emp_id = $_POST["emp_id"];
$var_task_id = $_POST["task_id"];
$var_weight_id = $_POST["weight"];
使用一个循环访问这些变量。 访问EMP_ID的第一个实例u使用:
$var_emp_id[0]; //will output 1
$var_emp_id[1]; //will output 2
$var_task_id[0]; //will output 5001
$var_task_id[1]; //will output 5003
,将其插入您的数据库:
for ($i = 0; $i <= count($var_emp_id); $i++){
mysql_query("INSERT INTO peval_tbl(weight,task_id,emp_id) VALUES('$weight[$i]','$var_task_id[$i]','$var_emp_id[$i]')");
}
TNX很多队友......它的工作就像魅力!为你欢呼! – raziel2101 2013-05-02 04:26:45
NP :),但我建议你使用PDO或mysqli作为你的查询,mysql_query已经被折旧了。 – Viscocent 2013-05-02 05:38:46
您正在处理$ _POST数组不正确,因此而不是重新编写脚本试试这个。
这一行则page2.php添加到您的代码中的mysql_connect
echo '<pre>' . print_r($_POST,true) . '</pre>';
此之前将转储后阵列的一个不错的打印,所以你可以看到数据是如何到达$ _ POST。
TNX ..我只得到这个 – raziel2101 2013-05-02 01:25:59
'阵列 ( [EMP_ID] => 1001 [task_id5001] => 5001 [重量] => 90 [task_id5002] => 5002 [task_id5003] => 5003 [ task_id5004] => 5004 [task_id5005] => 5005 [task_id5006] => 5006 [task_id5009] => 5009 [提交] => ADD )' – raziel2101 2013-05-02 01:26:56
名称 “wieght” 是错误的。啧。我如何一个接一个地打电话给他们,然后把他们一起插入? – raziel2101 2013-05-02 01:28:47
$sql = "select * from login where nombre !='carlos'";
$result = $conn->query($sql);
$index = 1;
while($row = mysqli_fetch_array($result)){
$valor = $row["nombre"];
$valor2 = $row["apellido"];
$insertsql= "insert into lista (`dato1`,`dato2`)values ('$valor', now())";
// mysql_query($insertsql);
$conn->query($insertsql);
$index++;
}
http://www.baulphp.com/insertar-multiples-registros-ciclo-while-php/
输出应该的,但你想说什么?没有?错误的输出? – 2013-05-02 01:03:37
你是否将'$ _POST ['weight']'的值赋给了任何变量?您的语句中的$ _POST'包含了什么值$ vals = implode(“,”,$ _ POST)'? – 2013-05-02 01:05:08
你为什么使用implode?为什么不是''。$ _ POST ['weight']。“','”。$ _ POST ['task_id']。“','”。$ _ POST ['emp_id']。“' – shapeshifter 2013-05-02 01:05:50