在循环表单后将值插入数据库

时间:2017-11-30 00:32:24

标签: php mysql

简单地说,我的脚本包括表单询问要输入多少图像,输入的值将在一个while循环中,该循环将显示一个表单,其输入与输入的图像值相同。好吧,我在循环外面做了提交按钮,我现在想要将它们添加到数据库中,我再次使用了一个带有查询的while循环,就像我在表单中所做的那样,但它只插入了最后一项..什么可以问题是什么?这是脚本的一部分:

if (isset($_POST["chooseimagen"])) {
    $i=0;
    $imgvl = $_POST["imgvl"];
    $cid = $_POST["cid"];
    while($i<$imgvl){

       echo '<form name="finalform" method="post" action="">
        id of content :<input type="text" name="idcontent" value="'.$cid.'"/><br><br>
       Enter id of image :<input type="text" name="imgid" value=""/><br><br>
       Enter name of image : <input type="text" name="imgname" value=""/><br><br>
       -----------------------------------------------------------------------<br>
       '; 
       $i++; 
    }

  echo  "<br><br><input type='hidden' name='imgvl' value='".$imgvl."'/><input type='submit' name='addto' value='insert images'/></form";  
}  

    ?>
<?php 
 if(isset($_POST["addto"])){
  $imgvl = $_POST["imgvl"];
     $i=0;
     while ($i < $imgvl){
     $idcontent = $_POST["idcontent"];
     $imgid = $_POST["imgid"];
     $imgname = $_POST["imgname"];
     $queryin = "insert into content_images values ('$imgid','$idcontent','$imgname','ok')";
     mysqli_query($con,$queryin);
         $i++;
     }

 }   


?>

1 个答案:

答案 0 :(得分:0)

还是开发新手,但我想我知道..

有些事情,你是在为每个循环创建一个新表单,但只关闭它一次。你也错过了一个&gt;,所以从技术上讲,你根本就没有关闭这些表格。

while($i<$imgvl){

   echo '<form name="finalform" method="post" action="">

...

$i++; 
}

echo  "<br><br><input type='hidden' name='imgvl' value='".$imgvl."'/>
<inputtype='submit' name='addto' value='insert images'/></form";

但我认为您遇到此问题的原因是您创建的每个表单都具有相同的输入名称。这就是为什么你只得到最后一项,因为你插入的每一项都只是最后一个输入集。

因为您对表单没有任何操作,所以每个表单基本上都是组合在一起的。这意味着无法区分您正在响应的输入名称,因此它将获取分配的最后一个值。

希望这有帮助