Php 在while循环中插入多行
我试图在一个while循环中插入多行,表单使用内爆,但似乎无法使其工作。我想插入多个名为“weight”的值。如值30、20、15、10、5以及剩余的emp_id和task_id page1.phpPhp 在while循环中插入多行,php,loops,while-loop,implode,Php,Loops,While Loop,Implode,我试图在一个while循环中插入多行,表单使用内爆,但似乎无法使其工作。我想插入多个名为“weight”的值。如值30、20、15、10、5以及剩余的emp_id和task_id page1.php $sql = mysql_query("SELECT task_tbl.task_id, task_tbl.task_name, task_tbl.task_sem,
$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>";
$sql=mysql\u查询(“选择
任务任务id,
任务名称,
任务,
任务_tbl.任务_yr,
任务tbl.post\U id,
post_tbl.post_id,
post_tbl.post_名称作为对方名称
从…起
任务
左连接
后tbl
在…上
task_tbl.post_id=post_tbl.post_id
哪里
task_sem=“$sem”
和
任务_yr=“$yr”
订购人
任务标识(ASC);
回声';
while($row=mysql\u fetch\u assoc($sql)){
回声“
”;
回显“员工ID号:”;
回声';
回声“
”;
回显“工作/活动ID号:”;
回声';
回声“
”;
回应“工作/活动:”;
echo$row['task_name'];
回声“
”;
回声“重量:”;
回声';
回声“%”;
回声“
”;
}
回声';
回声“;
输出如下所示:
员工身份证号码:1001
工作/活动识别号:2002
工作/活动:监督计算机的维护和故障排除
重量:[\uuux]%
员工身份证号码:1001
工作/活动识别号:2003
工作/活动:监督软件安装和维护
重量:[\uuux]%
员工身份证号码:1001
工作/活动识别号:2004
工作/活动:维护、监视和故障排除虚拟终端
重量:[\uuux]%
|提交|
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/>";
}
mysql\u connect(“localhost”、“root”或“”)或die(mysql\u error());
mysql_select_db(“emp_db0”);
如果(isset($_POST['submit'])){
$_POST['weight'];
$VAL=内爆(“,”,$\U POST);
错误报告(E_全部^E_通知);
mysql_查询(“插入peval_tbl(权重、任务id、emp_id)值(“$VAL”)”);
回声“
”;
echo“您已成功添加工作/活动!”;
回声“
”;
}
您对$\u POST数组的寻址不正确,因此与其重新编码脚本,不如尝试以下操作
在mysql\u connect之前,将这一行添加到page2.php中的代码中
echo '<pre>' . print_r($_POST,true) . '</pre>';
echo“”。打印($\u POST,true)。“”;
这将转储一个漂亮的post数组打印,这样您就可以看到数据是如何到达$\u post的。好的,根据我对您的问题的印象,您想要一个可扩展的表单,您可以用一个名称访问它的所有实例吗 表格样本的第一个实例:
<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">
使用循环访问这些变量。
要访问emp_id的第一个实例,请使用:
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]')");
}
要将其插入数据库,请执行以下操作:
$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++;
}
$i=0;$i的
输出应该是,但是你得到了什么?什么都没有?输出错误?你是否将$\u POST['weight']
的值赋给了任何变量?你的$\u POST
在你的语句$vals=introde(“,”,$\u POST)
中包含了什么值?你为什么要使用内爆?为什么不只是“.$\u POST['weight']”,“,“$\u POST?”['task\u id'].','.''.$\u POST['emp\u id'.]还有什么是$\u POST['weight'];做得好吗?page2.php没有输出。我正在尝试调试。可能是错误的。我还不知道。仍然猜测wat可以工作数组([emp\u id]=>1001[task\u id5001]=>5001[weight]=>90[task\u id5002]=>5002[task\u id5003]=>5003[task\u id5004]=>5004[task\u id5005]=>5005[task\u id5006]=>5006[task\u id5009]=>5009[submit]=>ADD)
名称“wieght”是错误的。tsk。我如何逐个调用它们并将它们全部插入?使用foreach,sir@raziel2101您可能想了解PDO或MVC框架,如CodeIgniter、CakePHP mysql_*函数,因为一些问题,例如securtiy.np:),但我建议您使用PDO或mysqli进行查询,mysql_查询已经贬值。
$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]')");
}
$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++;
}