gpt4 book ai didi

php - 插入新记录和更新 MySQL 表记录。- PHP

转载 作者:行者123 更新时间:2023-11-30 22:35:04 24 4
gpt4 key购买 nike

我有一个 MySQL 表。

|id|page  |page_number
|1 |name1 |3
|2 |name2 |2
|3 |name3 |1
|4 |name2 |4

用户可以添加新页面,但是在当前页面之后。例如当前页为 1(页码),则新页(页码)必须为 2,则 1 之后的所有其他页必须更新页码+1 并插入页码=2 的新页。或者可能首先我必须插入新页面然后更新所有页码?

什么是这里的标准解决方案,有标准解决方案吗?

我试过这样的foreach:

$count = 1;
// loop over all pages
foreach($pages->fetchAll() as $page){
// if count is less than new-page order then continue add 1 to
// counter
if($new_page_order > $count){
$count++;
continue;
}

// get unique id for current page
$current_id = $page['id'];
$new_order= $count+1;

// update current page with page_order+1
$query = $conn->prepare("UPDATE pages SET
page_order='".$new_order."' WHERE id=".$current_id);
$query->execute();
//add +1 to count, because it is used for page_order value
$count++;
}
// add new page
$query = $conn->prepare("INSERT INTO pages (columns... page_order)
VALUES( values , ..., $new_page_order)");

我该怎么做?

最佳答案

因为您只需要更新插入页之后的页码,您可以运行如下查询:

"UPDATE pages SET page_number = page_number + 1 WHERE page_number >= ".$current_id

插入完成之前

关于php - 插入新记录和更新 MySQL 表记录。- PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32802740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com