2014-10-12 3 views
-1

не может выяснить, в чем проблема ... например, я хочу добавить 2 строки данных ... когда я нажимаю кнопку + ... мои данные, которые только что напечатаны, будут ушел (выглядит как обновление) ... и база данных будет хранить только вторую строку данных ... 1-й не будет сохранен. пожалуйста, помогите мне узнать ответ. спасибо ~добавить новый набор данных и сохранить в базе данных

<?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

+0

просто в

phpnewbie123

+0

Ye не удивительно, что она не работает .. Я буду видеть, если я могу что-то придумаем – icecub

ответ

0

Ok сначала вы должны будете изменить форму элемента:

<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

жаль, что не может работать ... он только может хранить 2-й набор данных ... 1-ые данные не будет хранить – phpnewbie123

+0

Я думаю, что коды внутри fieldset также gt – phpnewbie123