Php 将变量从一段时间传递到另一段时间

Php 将变量从一段时间传递到另一段时间,php,sql,foreach,while-loop,Php,Sql,Foreach,While Loop,我对这张表格有点问题。 在fprm页面上,我的代码是: <form action="?act=process" method="post"> <?php $sql = "SELECT * FROM schedule WHERE day = '$day' ORDER BY ID ASC"; $hours = mysql_query($sql); while ($hour = mysql_fetch_array

我对这张表格有点问题。 在fprm页面上,我的代码是:

         <form action="?act=process" method="post">
         <?php $sql = "SELECT * FROM schedule WHERE day = '$day' ORDER BY ID ASC";
         $hours = mysql_query($sql);
         while ($hour = mysql_fetch_array($hours)) { ?>     

         <input type="text" name="course" value="<?=$hour[course]?>">
         <input type="hidden" name="id" value="<?=$hour[ID]?>">

         <?php } ?>

         <button type="submit">Submit</button>


原因是您试图使用id/课程数据作为数组,但只传递字符串。为了避免这种情况,只需在字段名称中添加
[]
,将字段组成数组即可:

     <input type="text" name="course[]" value="<?=$hour[course]?>">
     <input type="hidden" name="id[]" value="<?=$hour[ID]?>">

在字段名称后添加[]括号

<form action="?act=process" method="post">
     <?php $sql = "SELECT * FROM schedule WHERE day = '$day' ORDER BY ID ASC";
     $hours = mysql_query($sql);
     while ($hour = mysql_fetch_array($hours)) { ?>     

     <input type="text" name="course[]" value="<?=$hour[course]?>">
     <input type="hidden" name="id[]" value="<?=$hour[ID]?>">

     <?php } ?>

     <button type="submit">Submit</button>


错误现在消失了,输出如下:ID 1和课程数组ID 1和课程数组ID 1和课程Array@Adrian正如您在上所看到的,每个返回的是数组,而不是字符串/数字,这就是为什么在输出中得到
array
。我建议用
foreach
替换
each
如下:foreach($\u POST['id']as$key=>$id){$course=$\u POST['course'][$key];echo“id是$id,course$course
“;}
<form action="?act=process" method="post">
     <?php $sql = "SELECT * FROM schedule WHERE day = '$day' ORDER BY ID ASC";
     $hours = mysql_query($sql);
     while ($hour = mysql_fetch_array($hours)) { ?>     

     <input type="text" name="course[]" value="<?=$hour[course]?>">
     <input type="hidden" name="id[]" value="<?=$hour[ID]?>">

     <?php } ?>

     <button type="submit">Submit</button>