插入新记录和更新MySQL表记录.- PHP

时间:2015-09-26 22:41:30

标签: php mysql pdo

我有一个MySQL表。

$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)");

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

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

我尝试过这样的foreach:

gulp.watch('dist/app.js', () => server.start());

我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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

相关问题