[英]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.