php
  • sql
  • database
  • web-based
  • multiple-entries
  • 2013-08-04 54 views 0 likes 
    0

    您已經做了一個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>"; 
         } 
    
         ?> 
    

    和感謝,真的很感激,如果有人可以幫助我有了這個和即時只有一個noob在編碼很抱歉

    回答

    1

    這是因爲你正在之外執行你的查詢循環。解決方法是在while循環內移動你的mysql_query($sq, $cn)。此外,您的插入查詢有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

    +0

    對不起,它已經在while循環函數中。 – user1868185

    +0

    @ user1868185,在這種情況下,我已經更新了我的答案。 mysql的語法不正確,你使用'VALUE'而不是'VALUES'。請嘗試更新的代碼。 – vee

    +0

    感謝那一個,我也爲此做了一些工作,我在while函數中使用了include,這個工作很好,就像你也做的一樣,再次感謝! – user1868185

    相關問題