2015-06-16 55 views
-1

我的代碼沒有更新我的數據庫中的行,沒有語法錯誤,所以它必須是邏輯錯誤,它可能是大括號的位置。我想更新同一行中的多個列。下面是代碼 -PHP,更新多列時出錯

<table border="1" align = "center" > 

<form method="POST" action="testupdate.php"> 

<?php 

    while ($row=mysqli_fetch_assoc($q)){ 

?>  <tr><td><input name="select2" type="radio" value="<?php echo $row['c_id']; ?>"></td> 

<?php 

    echo "<td>".$row['c_id']."</td>"; 

    echo "<td>".$row['no_computer']."</td>"; 

    echo "<td>".$row['c_type']."</td>"; 

    echo "<td>".$row['c_location']."</td></tr>"; 
    } 

    ?> 

<input type="submit" name="update" value="update" ></table></form> 

<form method="POST" action="testupdate.php"> 

<?php 

    if (isset($_POST['select2'])){ 
    if (isset($_POST['update'])){ 

    ?> 

<form method="POST" action="testupdate.php"> 

no of computers: <br /><input type="text" name="no_computer2"><br /><br /> 

type: <br /><input type="text" name="c_type2"><br /><br /> 

location: <br/><input type="text" name="c_location2"><br /><br /> 

technical status: <br /><input type="text" name="tech_status2"><br /><br /> 

<input type="submit" name="ok" value="okay"> 

</form> 

<?php 

    if (isset($_POST['ok'])){ 
     $nc2= $_POST['no_computer2']; 
     $ct2= $_POST['c_type2']; 
     $cl2= $_POST['c_location2']; 
     $ts2= $_POST['tech_status2']; 
     $i=$_POST['select2']; 

     $s2="UPDATE `tech_computer` SET `no_computer`='$nc2' , `c_type`='$ct2' , `c_location`='$cl2', `tech_status`='$ts2' where `c_id` like '$i'"; 

     $q2=mysqli_query($s2); 

     header ('location:testupdate.php'); 
    }}} 
    ?> 
+1

我看你沒看過[漫畫](https://xkcd.com/327/)! –

回答

0

$_POST將包含存在於當前form的值。當第二個表格被提交時,第一個form的值被覆蓋。第二個form內沒有字段 - select2。嘗試用添加hidden場公佈值作爲其值 -

<form method="POST" action="testupdate.php"> 

<input name="select2" type="hidden" value="<?php echo $_POST['select2']; ?>"> 
no of computers: <br /><input type="text" name="no_computer2"><br /><br /> 

type: <br /><input type="text" name="c_type2"><br /><br /> 

location: <br/><input type="text" name="c_location2"><br /><br /> 

technical status: <br /><input type="text" name="tech_status2"><br /><br /> 

<input type="submit" name="ok" value="okay"> 

</form> 
+0

是否覆蓋,即使它不具有相同的名稱?另外,我試過了,仍然是同樣的錯誤=(.. – user3053134

+0

你只會得到'form'提交的值 –

+0

但是我認爲POST變量是超級全局的..不是嗎? – user3053134