使用php通过单个提交按钮插入多行数据

使用php通过单个提交按钮插入多行数据,php,mysql,Php,Mysql,如何从SQL表中检索数据、修改数据并将其存储在另一个具有多行和多列的数据库表中以及使用单个提交按钮我希望一次插入每一行我不知道如何获取隐藏值并正确使用它 <?php include"connect_database.php"; if(isset($_POST['submit'])) { $amt = $_POST['total']; if($amt > 0) { $qry = "INSERT INTO atten

如何从SQL表中检索数据、修改数据并将其存储在另一个具有多行和多列的数据库表中以及使用单个提交按钮我希望一次插入每一行我不知道如何获取隐藏值并正确使用它

<?php
 include"connect_database.php";
 if(isset($_POST['submit'])) {
         $amt = $_POST['total'];
         if($amt > 0) {
                $qry = "INSERT INTO attendance(rollno, name, year, attendance, reason) VALUES "; // Split the mysql_query
                for($i=1; $i<=$amt; $i++) {
                        $qry .= "('".$_POST["rollno$i"]."', '".$_POST["name$i"]."', '".$_POST["year$i"]."', '".$_POST["attendance$i"]."', '".$_POST["reason$i"]."' ),"; // loop the mysql_query values to avoid more server loding time
                }
                $qry    = substr($qry, 0, strlen($qry)-2);
                $insert = mysqli_query($dbcon, $qry); // Execute the mysql_query
         }
 // Redirect for each cases
         if($insert) {
                $msg = '<script type="text/javascript">alert("added");</script>';
         }
         else {
                $msg = '<script type="text/javascript">alert("Server Error, Kindly Try Again");</script>';
         }

};

if (isset($_POST['select']))
{
  $sql = "SELECT * FROM data WHERE year='" . $_POST['yr'] . "'";
$myData = mysqli_query($dbcon, $sql);
$num = mysqli_num_rows($myData);


  echo "<table border=1>
  <tr>
  <th>Rollno</th>
  <th>Name</th>
  <th>Year</th>
  <th>Attendance</th>
  <th>reason</th>
  </tr>";

 for ($i=0; $i <$num; $i++)
{
$record = mysqli_fetch_array($myData);
echo "<form action=smanage.php method=post>";
  echo "<tr>";
  echo "<td>" . "<input type=text name=rollno$i value=" . $record['rollno'] . " </td>";
  echo "<td>" . "<input type=text name=name$i value=" . $record['name'] . " </td>";
  echo "<td>" . "<input type=text name=year$i  value=" . $record['year']  . " </td>";
 echo  "<td> "."<select name=attendance$i >
      <option value=Present >present</option>
      <option value=Absent >Absent</option>
  </select>"."</td>";
  echo "<td>". "<textarea cols=15 rows=2 name=reason$i  placeholder=Enter reason ...></textarea>" . "</td>" ;
  echo "<td>" . "<input type=hidden name=total value=" . $i-1 . "</td>";
  echo "</tr>";


}

echo"</table>";

echo "<input type=submit name=submit value=save class=Button3>";

echo "</form>";




 };


mysqli_close($dbcon);


?>

您正在为上的表中的每一行打开多个表单。
这会导致html无效,只需在显示表之前启动表单即可

你可以使用这个html

<table>
<?php
for ($i = 0; $i < $num; $i++) {
    $record = mysqli_fetch_array($myData);
?>
    <tr>
        <td><input type="text" name="rollno[<?= $record['rollno'] ?>]" value="<?= $record['rollno'] ?>" </td>
        <td><input type="text" name="name[<?= $record['rollno'] ?>]" value="<?= $record['name']?>" </td>
        <td><input type="text" name="year[<?= $record['rollno'] ?>]"  value="<?= $record['year'] ?>" </td>
        <td><select name="attendance[<?= $record['rollno'] ?>]" >
                <option value="Present" >present</option>
                <option value="Absent" >Absent</option>
            </select></td>
        <td><textarea cols="15" rows="2" name="reason[<?= $record['rollno'] ?>]"  placeholder="Enter reason ..."></textarea></td>
    </tr>
<?php
}
?>
</table>

您的问题是如何访问表中的每一行?我想你的问题在这里$\u POST[“rollno$I”]。我要做的是像这样修改$\u POST[“rollno”..$I]通过进行此更改,您可以成功地正确地解除变量限制。您的问题需要清晰简洁。不清楚我问的是关于插入…而不是检索。。。我的问题是通过一个提交按钮将多行值插入数据库…我的html显示了如何构建表单和表以将所有数据发送到后端scripterror in code now check并确保在for loop echo“”之后添加此行;还是没用。我加了那句话。仍然是相同的错误。此答案不安全,因为它没有使用准备好的语句。研究人员不应采纳这一建议。
<table>
<?php
for ($i = 0; $i < $num; $i++) {
    $record = mysqli_fetch_array($myData);
?>
    <tr>
        <td><input type="text" name="rollno[<?= $record['rollno'] ?>]" value="<?= $record['rollno'] ?>" </td>
        <td><input type="text" name="name[<?= $record['rollno'] ?>]" value="<?= $record['name']?>" </td>
        <td><input type="text" name="year[<?= $record['rollno'] ?>]"  value="<?= $record['year'] ?>" </td>
        <td><select name="attendance[<?= $record['rollno'] ?>]" >
                <option value="Present" >present</option>
                <option value="Absent" >Absent</option>
            </select></td>
        <td><textarea cols="15" rows="2" name="reason[<?= $record['rollno'] ?>]"  placeholder="Enter reason ..."></textarea></td>
    </tr>
<?php
}
?>
</table>
<td><input type="text" name="rollno[]" value="<?= $record['rollno'] ?>" </td>
<td><input type="text" name="rollno[<?= $record['rollno'] ?>]" value="<?= $record['rollno'] ?>" </td>
$total = count($_POST['rollno']);