php代码在更新所选行时重新排列数据库中的行顺序

时间:2014-12-16 14:24:15

标签: php

tablename:news

柱:

headline, send_sub_top, sub_top_priority.

下面是我在数据库中的表结构。

我只需要从表格中更新选定的行。它更新数据库中的send_sub_top = "Inactive"并重新排列数据库中sub_top_priority列的顺序。

例如:

如果我删除数据库中的第3行,则会更新第3行的send_sub_top = "Inactive"和第3行的sub_top_priority = 0,然后重新排列sub_top_priority中所有Ascending列的顺序订单如1,2,3,4。

我在数据库中创建更新send_sub_top Column = Inactive的代码但是这不会重新排列sub_top_priority订单......

我的代码示例 - 我的代码仅更新send_sub_top = Inactive并保持sub_top_priority列顺序,如...

删除第3行后 1,2,4,5。但我需要像1,2,3,4。

id  headline            send_sub_top               sub_top_priority 

1    good                 Active                            1

2    Test                Active                             2

3    Nice                Active                             3 

4    Great               Active                             4

5    Demo               Active                              5

PLZ帮助我......提前谢谢..

下面是我的代码......

<?php                  
                foreach($sub_top_select as $sub_top)
                {                       
                ?>
            <li><a href="javascript:return(0);" remove_sub_top_news="<?php echo $sub_top['id']; ?>">
                <img src="img/error.png" height="14px" width="14px" /></a></li>
                <?php } ?>

用于更新数据库中的非活动的PHP代码...

但我还需要按sub_top_priority顺序重新排列所有Ascending列的顺序,如1,2,3,4。

<?php
if(isset($_POST['remove_sub_top_news']))
    {   
        $id = mysql_real_escape_string(trim(htmlspecialchars($_POST['remove_sub_top_news'])));      
        $sql = "SELECT id,send_sub_top FROM news WHERE id='$id'";
        $result = mysql_query($sql);        
        $row = mysql_fetch_assoc($result);      
        mysql_query("Update news SET send_sub_top='Inactive' WHERE id=".mysql_real_escape_string(trim(htmlspecialchars($_POST['remove_sub_top_news']))));       
        if(mysql_affected_rows() > 0)
        {           
            $_SESSION['message'] = "News Removed From SubTop Successfully";
            header("Location:sethomepage.php");
            exit;
        }       
    }
?>

1 个答案:

答案 0 :(得分:0)

首先更新send_sub_top值。

然后从表中选择所有数据,条件是set_sub_top =&#39;有效&#39;并按sub_top_priority升序排序。

然后循环选择查询的整个数据会以{1}的增量更新sub_top_priority

注意:如果表格中的数据不多,这种方法很好。