【问题标题】:Getting multiple data and them adding them into multiple database entries获取多个数据并将它们添加到多个数据库条目中
【发布时间】:2013-08-05 09:03:13
【问题描述】:

您已经制作了一个 php 脚本,用户可以选择或添加多个条目到数据库中,例如用户可以在 10 个区域的节目中一次添加 10 个项目,但主要问题是只有最后一个项目被添加到数据库中并不是所有的数据都分成多个条目,这里是代码,它的名字是 final.php

      <?php
      if(isset($_POST['multi'])){
      echo "<form action='final.php' method='POST'>";
      $a = $_POST['number'];
      $b = 0 ;
      $c = $_POST['country'];
      $d = $_POST['state'];
      echo"<table border='1'><tr><td colspan='7'>Country:<input type='text'  
      name='country' value='$c'></td></tr>";
      while($a != $b){
      $b++;
      echo "
      <tr>
     <td>State</td>
 <td>Name</td>
     <td>Main Information</td>
     <td>Second Information</td>
      </tr>
      <tr>
     <td><input type='text' name='state".$b."' value='$d'></td>
     <td><textarea name='name".$b."'></textarea></td>
    <td><textarea name='info1".$b."'></textarea></td>
    <td><textarea name='info2".$b."'></textarea></td>
      </tr>
      ";

      };
      echo "</table></br>Total:<input type='text' name='total' value='$a'>";
      echo"<input type='submit' name='Add' value='Add'></form>";

      }

      elseif(isset($_POST['Add'])){
          $a1 = $_POST['total'];
          $b1 = 0;
          $c1 = $_POST['country'];
          echo "There is $a1 types in here";

          $cn = mysql_connect("127.0.0.1","root","");
          if(!$cn)
          {
          die('Could not connect:'.mysql_error());
          }
          mysql_select_db("test",$cn);


          while($a1 != $b1){
              $b1++;        
              $state = "state".$b1;
              $name = "name".$b1;
              $info1 = "info1".$b1;
              $info2 = "info2".$b1;

              $sq="INSERT INTO ftable(Country, State, Name, First, Second ) VALUE('$c1', '$_POST[$state]', '$_POST[$name]', '$_POST[$info1]', '$_POST[$info2]')";

              echo "</br>Country:$c1</br> 
                  State:".$_POST[$state]."</br>
                  Name:".$_POST[$name]."</br>
                  Info1:".$_POST[$info1]."</br>
                  Info2:".$_POST[$info2]."</br>";
          }


          if (!mysql_query($sq,$cn))
          {
           die('Error:'.mysql_error());
          }
          echo"<palign='center'>You have added $a to the dbms</br>";




      }

      else{
      echo"<form action='final.php' method='POST'>
      <input type='number' name='number'>
      <input type='text' name='country' value='country'>
      <input type='submit' value='Generate' name='multi'>
      </form>";
      }

      ?>

谢谢,如果有人能帮我解决这个问题,我将不胜感激,我只是编码方面的菜鸟,非常抱歉

【问题讨论】:

    标签: php sql database web-based multiple-entries


    【解决方案1】:

    这是因为您在while 循环之外执行查询。解决方案是将您的 mysql_query($sq, $cn) 移动到 while 循环内。此外,您的插入查询有VALUE 而不是VALUES,请参阅insert syntax

           while($a1 != $b1){
              $b1++;        
              $state = "state".$b1;
              $name = "name".$b1;
              $info1 = "info1".$b1;
              $info2 = "info2".$b1;
    
              $sq="INSERT INTO ftable(Country, State, Name, First, Second ) VALUES('$c1', '$_POST[$state]', '$_POST[$name]', '$_POST[$info1]', '$_POST[$info2]')";
    
              echo "</br>Country:$c1</br> 
                  State:".$_POST[$state]."</br>
                  Name:".$_POST[$name]."</br>
                  Info1:".$_POST[$info1]."</br>
                  Info2:".$_POST[$info2]."</br>";
    
              if (!mysql_query($sq,$cn))
              {
                die('Error:'.mysql_error());
              }
              echo"<palign='center'>You have added $a to the dbms</br>";
           }
    

    请注意,您的代码容易受到 SQL 注入的影响,您应该考虑使用 mysql_real_escape_string,如下所示:

      $a = mysql_real_escape_string($_POST['number']);
      $c = mysql_real_escape_string($_POST['country']);
      $d = mysql_real_escape_string($_POST['state']);
    

    另请注意,mysql_ 扩展名已弃用,因此您应该查看mysqliPDO

    【讨论】:

    • @user1868185,在这种情况下,我已经更新了我的答案。 mysql 语法不正确,您使用的是VALUE 而不是VALUES。请尝试更新后的代码。
    • 谢谢你,我也为此做了一些事情,我在while函数中使用了include,这和你做的一样工作得很好,再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2015-05-24
    • 2020-07-28
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    相关资源
    最近更新 更多