Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在while循环中插入多行_Php_Loops_While Loop_Implode - Fatal编程技术网

Php 在while循环中插入多行

Php 在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,

我试图在一个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,
                    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++;
}