2015-10-19 75 views
0

我試圖在勾選複選框時更新「row2」。當我一次只更新1行時,一切正常,但選擇多行時,所有檢查的行都會得到相同的值。SQL:在php前端更新多行

我正在尋找一種方法將id添加到textarea標記中,以便可以使用唯一值更新多行。

我認爲這個問題是在db.config$new_price或者我在action2.php

感謝任何幫助或任何可以點我在正確的方向更新數據庫的方式。

的index.php:

<form action="action2.php" id="bulk_action_form" method="post" name= 
"bulk_action_form" onsubmit="return deleteConfirm();"></form> 
<table class="bordered tablesorter" id="myTable"> 
    <thead> 
     <tr> 
      <th class="th-class check-box"><input id="select_all" name= 
      "select_all" type="checkbox" value=""></th> 
      <th class="th-class">ID</th> 
      <th class="th-class">row2</th> 
      <th class="th-class">row3</th> 
     </tr> 
    </thead><?php 

           if(mysqli_num_rows($query) > 0){ 

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

          ?> 
    <tr class=""> 
     <td align="center" class="checkbox-td"><input class="checkbox" 
     height="30" name="checked_id[]" type="checkbox" value= 
     "<?php echo $row['id']; ?>" width="30"></td> 
     <td class="td-class"><?php echo $row['id']; ?></td> 
     <td class="td-class reg-anote"> 
     <textarea class="text a-note" cols="10" id="confirmationText" name= 
     "confirmationText" rows="1"> 
<?php echo $row['row2']; ?> 
</textarea></td> 
     <td class="td-class"><?php echo $row['row3']; ?></td> 
    </tr><?php } }else{ ?> 
    <tr> 
     <td colspan="5">No records found.</td> 
    </tr><?php } ?> 
</table> 
<form> 
    <input class="btn btn-danger" name="bulk_delete_submit" type="submit" 
    value="Delete"> <button name="price" type="submit">Submit</button> 
</form> 

action2.php:

<?php 
session_start(); 
include_once('dbConfig.php'); 
if(isset($_POST['bulk_delete_submit'])){ 
    $idArr = $_POST['checked_id']; 
    foreach($idArr as $id){ 
     mysqli_query($conn,"DELETE FROM $TableName2 WHERE id=".$id); 
    } 
} 
if(isset($_POST['confirmationText'])){ 
    $idArr = $_POST['checked_id']; 
    foreach($idArr as $id){ 
     mysqli_query($conn,"UPDATE $TableName2 SET Column2 WHERE id=".$id); 
    } 
} 
?> 

dbConfig.php:

<?php 
$new_price = $_POST['confirmationText']; 
$TableName2 = 'Table2'; 
$dbHost = 'localhost'; //database host name 
$dbUser = 'username';  //database username 
$dbPass = 'password';   //database password 
$dbName = 'databasename'; //database name 
$conn = mysqli_connect($dbHost,$dbUser,$dbPass,$dbName); 
if(!$conn){ 
    die("Database connection failed: " . mysqli_connect_error()); 
} 
?> 

回答

0

你必須做出的textarea領域的變化像如下─

<textarea class="text a-note" cols="10" id="confirmationText" name= 
     "confirmationText[]" rows="1"> 

,並在action2.php作出這樣如下─

<?php 
session_start(); 
include_once('dbConfig.php'); 
if(isset($_POST['bulk_delete_submit'])){ 
    $idArr = $_POST['checked_id']; 
    foreach($idArr as $id){ 
     mysqli_query($conn,"DELETE FROM $TableName2 WHERE id=".$id); 
    } 
} 

if(isset($_POST['confirmationText'])){ 
    $idArr = $_POST['checked_id']; 
    foreach($idArr as $key => $id){ 
     mysqli_query($conn,"UPDATE $TableName2 SET Column2='".$new_price[$key]."' WHERE id=".$id); 
    } 
} 
?> 
+0

非常靠近只是改變你的腳本,一些小的修改工作進行必要的修改和它的作品只是因爲我想!非常感謝 – user3893380