簡體   English   中英

PHP 循環插入和更新

[英]PHP insert and update in loop

我在這里有這個 php 腳本,我想根據$id$name更新表。 參考腳本,表格成功更新了id='1' with name='A'id='2' with name='B' 但是名稱C,D尚不包含 id 值。 不知不覺我需要做插入查詢。 但是如何根據還沒有 id 的剩余名稱在循環中插入查詢呢?

而且,如果 size id > name我需要刪除沒有name的剩余id 感謝你的幫助。

<?php
  $id   = "1,2";
  $name = "A,B,C,D";

  $sliptId = explode(",", $id);
  $sliptName = explode(",", $name);

  $sizeOfId = sizeof($sliptId);
  $sizeOfName = sizeof($sliptName );

  if(($sizeOfId < $sizeOfName ) || ($sizeOfId > $sizeOfName)){
    //not even data
    for($x=0; $x< $sizeOfId; $x++ ){
      $sql = "UPDATE tbl
              SET name = '".$sliptName[$x]."' 
              WHERE id = '".$sliptId[$x]."' ";  
      echo $sql;

    }
  }else{
    //even data. Update as normal.
  }
?>

可以這樣做:

$result = array_map(null, $sliptId, $sliptName);
print_r($result);
// you can see that now you have array of pairs from each `$slipt*` array 
// and where values from first array don't exist - first key is `empty`

foreach ($result as $pair) {
    if (empty($pair[0])) {
        // do Insert
    } else {
        // do Update
    }
} 
<?php
  $id   = "1,2";
  $name = "A,B,C,D";

  $sliptId = explode(",", $id);
  $sliptName = explode(",", $name);

  $sizeOfId = sizeof($sliptId);
  $sizeOfName = sizeof($sliptName );

  if($sizeOfId <= $sizeOfName){
    //not even data
    for($x=0; $x< $sizeOfId; $x++ ){
      $sql = "UPDATE tbl
              SET name = '".$sliptName[$x]."' 
              WHERE id = '".$sliptId[$x]."' ";
    }
    for($x=$sizeOfId; $x< $sizeOfName; $x++ ){
      $sql = "INSERT INTO tbl values(null,'".$sliptName[$x]."')";
    }
  }else{
    for($x=0; $x< $sizeOfName; $x++ ){
      $sql = "UPDATE tbl
              SET name = '".$sliptName[$x]."' 
              WHERE id = '".$sliptId[$x]."' ";
    }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM