2014-10-12 55 views
-1

無法查出是什麼問題...比如我想添加2行數據的...當我按下+按鈕...我的數據剛鍵入會(看起來像刷新)...數據庫將只存儲第二行數據...第一個不會存儲。請幫我找出答案。謝謝〜添加一組新數據,並存儲到數據庫

<?php if($_POST['btnPlus1']) 
    $_SESSION['count1'] += 1; 
else if($_POST['btnMinus1']) 
    $_SESSION['count1'] -= 1; 

$AddEducationalQ = "INSERT INTO tbleducational(Id,University,Level,Specialization,Year) VALUES('".$_POST['txtStaffIc']."','".strtoupper($_POST['txtUniversity'])."','".strtoupper($_POST['sLevel'])."','".strtoupper($_POST['txtSpecialization'])."','".$_POST['txtYear']."')"; 
$AddEducationalResult = mysql_query($AddEducationalQ,$link); ?> 


<tr> 
    <td> 
     <fieldset> 
      <legend>Educational Background</legend> 
       <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
       <tr> 
        <td> 
         <?php 
         for($tempfield = 1; $tempfield <= $_SESSION['count1']; ++$tempfield) 
         {?> 
          <fieldset> 
           <legend><?php echo $tempfield ?></legend> 
            <table width="200" border="0"> 
             <tr> 
              <td>University</td> 
              <td>Level</td> 
              <td>Specialization</td> 
              <td>Year Graduated</td> 
             </tr> 
             <tr> 
              <td> 
               <input type="text" name="txtUniversity" id="txtUniversity" /></td> 
              <td> 
               <select name="sLevel" id="sLevel"> 
                <option></option> 
                <option>Diploma</option> 
                <option>Degree</option> 
                <option>Master</option> 
                <option>Doctor</option>    
               </select> 
              </td> 
              <td> 
               <input type="text" name="txtSpecialization" id="txtSpecialization" /> 
              </td> 
              <td> 
               <input type="text" name="txtYear" id="txtYear" /> 
              </td> 
             </tr> 
            </table> 
          </fieldset>  
          <?php 
         }?> 
        </td> 
       </tr> 
       <tr> 
        <td colspan="4" align="center"><input type="submit" name="btnPlus1" id="btnPlus1" value="+" /> <input type="submit" name="btnMinus1" id="btnMinus1" value="-" /></td> 
       </tr> 
       </table> 
     </fieldset> 
    </td> 
</tr> 
+0

我失去了你的部分代碼。你的表單元素在哪裏?你的第一張桌子的開始在哪裏? – icecub 2014-10-12 06:27:52

+0

只是簡單的

phpnewbie123 2014-10-12 06:45:35

+0

葉難怪它不工作..我會看看我能不能想些辦法 – icecub 2014-10-12 06:46:47

回答

0

好首先你有你的表單元素更改爲:

<form method="post" action="filename.php" accept-charset="utf-8"> 

確保您更改filename.php這個代碼的文件名。

現在你必須做出選擇。您可以繼續使用mysql_ *,這已被棄用且非常不安全!或者您可以將代碼升級到PDO()

如果您希望繼續使用mysql_ *,你的PHP部分更改爲:

if(isset($_POST['txtStaffIc'], $_POST['txtUniversity'], $_POST['sLevel'], $_POST['txtSpecialization'], $_POST['txtYear'])){ 
    $AddEducationalQ = "INSERT INTO tbleducational(Id,University,Level,Specialization,Year) VALUES('".$_POST['txtStaffIc']."','".strtoupper($_POST['txtUniversity'])."','".strtoupper($_POST['sLevel'])."','".strtoupper($_POST['txtSpecialization'])."','".$_POST['txtYear']."')"; 

    mysql_query($AddEducationalQ,$link) or die(mysql_error()); 

    echo "Data succesfully added to database."; 
} 

如果你想升級到PDO()相反,你的PHP部分更改爲:

if(isset($_POST['txtStaffIc'], $_POST['txtUniversity'], $_POST['sLevel'], $_POST['txtSpecialization'], $_POST['txtYear'])){ 
    $AddEducationalQ = "INSERT INTO tbleducational(Id,University,Level,Specialization,Year) VALUES(':txtStaffIc',':txtUniversity',':sLevel',':txtSpecialization',':txtYear')"; 
    $prepare = $pdo->prepare($AddEducationalQ); 
    $prepare->bindValue(":txtStaffIc",$_POST['txtStaffIc']); 
    $prepare->bindValue(":txtUniversity",strtoupper($_POST['txtUniversity'])); 
    $prepare->bindValue(":sLevel",strtoupper($_POST['sLevel'])); 
    $prepare->bindValue(":txtSpecialization",strtoupper($_POST['txtSpecialization'])); 
    $prepare->bindValue(":txtYear",$_POST['txtYear']); 

    if($prepare->execute()){ 
     echo "Data succesfully added to database."; 
    } else { 
     print_r($prepare->errorInfo()); 
    } 
} 

也使確定你將數據庫連接文件更改爲:

<?php 

$dbhost = ""; //Enter MySQL server host 
$dbuser = ""; //Enter MySQL database user 
$dbpass = ""; //Enter MySQL database pass 
$dbname = ""; //Enter MySQL database name 

$pdo = new PDO("mysql:host=".$dbhost.";dbname=". $dbname, $dbuser, $dbpass); 

?> 

在最後一個註釋中,我應該補充說我沒有看到你的PHP代碼中有任何需要的數據庫連接文件。我假設你根本沒有發佈這個。

+0

對不起它不能正常工作......它只能存儲第二組數據...第一數據將不會存儲 – phpnewbie123 2014-10-12 08:22:35

+0

我認爲fieldset中的代碼也GT問題 – phpnewbie123 2014-10-12 08:43:40

相關問題