Php 如何从循环显示的表单中收集输入字段的值

Php 如何从循环显示的表单中收集输入字段的值,php,Php,我有一个表单,其中输入字段通过while循环显示,但我在从输入字段收集数据以保存到数据库时遇到问题。收集表单数据的php脚本应该是什么 if(isset($_GET['submit'])){ //collect form data } $sql="SELECT * FROM epl"; $result=mysqli_query($db_conx,$sql); if($nr=mysqli_num_rows($result)>0){ 这两个变量初始化为1,它在while循环中用于

我有一个表单,其中输入字段通过while循环显示,但我在从输入字段收集数据以保存到数据库时遇到问题。收集表单数据的php脚本应该是什么

if(isset($_GET['submit'])){
    //collect form data
}


$sql="SELECT * FROM epl";
$result=mysqli_query($db_conx,$sql);
if($nr=mysqli_num_rows($result)>0){
这两个变量初始化为1,它在while循环中用于增加值,将用作输入字段的名称

$Inum1=1;
$Inum2=1;
while($row=mysqli_fetch_array($result)){
  $t1=$row['team1'];
  $t2=$row['team2'];
  echo '<form METHOD="get">
    <div class="block">
    <div class="epl_form_g">
    <div class="eplT">
      <label >'.$t1.'</label>
    </div>
      <input type="text" name="t_'.$Inum1.'_score" id="input">
    </div>

    <label class="vs">vs</label>

    <div class="epl_form_g">
    <input type="text" name="t_'.$Inum2.'_score" id="input">
    <div class="eplT">
      <label>'.$t2.'</label>
      </div>

    </div> 
    </div> ';
    $Inum1++;
    $Inum2++;
}
echo ' <center><input name="submit" type="submit" value="ENTER NOW!"  
style="width:30%; background-color:#379BFF; text-align:center;border:none; border-radius:3px; height:41px; color:#FFF; 
font-size:24px; box-shadow:none; margin-top:20PX;">
  </form>';
}
$Inum1=1;
$Inum2=1;
while($row=mysqli\u fetch\u数组($result)){
$t1=$row['team1'];
$t2=$row['team2'];
回声'
“.$t1。”
vs
“.$t2。”
';
$Inum1++;
$Inum2++;
}
回声'
';
}

由于每个记录都有一个表单,并且每个表单都有自己的提交按钮,因此它们实际上是页面上唯一且独立的实体,这意味着字段名可以重复(但ID不能重复)

表单已提交,并且只有通过表单提交发送的该行的数据-具有预定义的字段名
t_1_score
t_2_score
,因此从$\u get数组获取值并在update/insert语句中使用它们很简单。如果是update语句,那么我认为每个表单都需要一个隐藏字段,其中包含db记录的ID

/* process form submission */
if( isset( $_GET['t_1_score'],$_GET['t_2_score'] ) ){

    /* 
       As you submit only 1 form at a time the field names
       can be the same in each form
    */
    $score_team_1=$_GET['t_1_score'];
    $score_team_2=$_GET['t_2_score'];

    /* pseudo database code */
    $sql='insert or update some table';
    $res=$db->query( $sql );
}


/* display your form and the input fields for each row */
if( $result ){
    while( $row=mysqli_fetch_array( $result ) ){
        $t1=$row['team1'];
        $t2=$row['team2'];
        /*$id=$row['id'];*/

        echo "
        <form method='get'>
            <div class='block'>
                <div class='epl_form_g'>
                    <div class='eplT'><label>".$t1."</label></div>
                    <input type='text' name='t_1_score'>
                </div>

                <label class='vs'>vs</label>

                <div class='epl_form_g'>
                    <input type='text' name='t_2_score'>
                    <div class='eplT'><label>".$t2."</label></div>
                </div>
                <!--<input type='hidden' name='id' value='{$id}' />-->
                <input name='sub' type='submit' value='ENTER NOW!' style='width:30%; background-color:#379BFF; text-align:center; border:none; border-radius:3px; height:41px; color:#FFF; font-size:24px; box-shadow:none; margin-top:20px auto 0 auto; float:none;' />
            </div>
        </form>";
    }
}
/*处理表单提交*/
如果(isset($获得['t获得1分],$获得['t获得2分])){
/* 
由于您一次只提交一份表单,因此字段名
每种形式都可以相同
*/
$score_team_1=$_GET['t_1_score'];
$score_team_2=$_GET['t_2_score'];
/*伪数据库代码*/
$sql='insert或update some table';
$res=$db->query($sql);
}
/*显示表单和每行的输入字段*/
如果($结果){
while($row=mysqli\u fetch\u数组($result)){
$t1=$row['team1'];
$t2=$row['team2'];
/*$id=$row['id']*/
回声“
“$t1。”
vs
“$t2。”
";
}
}

为什么要使用
while()
循环来保存变量?每次迭代似乎都不需要一个新表单,而且每个表单都要重复使用ID~两次。不过,您可以看看这个问题,如果您每db行有一个表单,那么您可能可以使用标准名称,而不需要数字~ie简单地
name='t_1_score'
name='t_2_score'
,因为您一次只提交一个表单,所以无论表单提交的过程如何,都只需在$\u GET arrayOk中查找这两个变量,那么如何收集值呢并在表单设置为@RamRaider时发布到DB