作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!