0

我正在尝试用 PHP 做一个简单的 CMS。在滑块管理中,我想更改添加照片的顺序。

<a href="slideup.php?order=<?php echo $result['order']; ?>&id=<?php echo $result['id']; ?>" title="Up"><img src="../images/up.png" alt="Up" /></a>
<a href="slidedown.php?order=<?php echo $result['order']; ?>&id=<?php echo $result['id']; ?>" title="Down"><img src="../images/down.png" alt="Down" /></a>

它正在发送相关的 php 页面、当前顺序和幻灯片 ID。

幻灯片.php

<?php

    include('includes/functions.php');

    $order=$_REQUEST['order'];
    $id=$_REQUEST['id'];

    goUp($order, $id);

?>

滑下.php

<?php

    include('includes/functions.php');

    $order=$_REQUEST['order'];
    $id=$_REQUEST['id'];

    goDown($order, $id);

?>

函数.php

function goUp($order, $id)
    {
        $db = new DB_CONNECT();
        if(!$order == 1)
        {
            $neworder = $order - 1;
            mysql_query("UPDATE `slider` SET `order`='$order' WHERE `order`='$neworder'") or die(mysql_error());
            mysql_query("UPDATE `slider` SET `order`='$neworder' WHERE `id`='$id'") or die(mysql_error());
        }       

        header('Location: ../admin/slider.php');
    }

function goDown($order, $id)
    {
        $db = new DB_CONNECT();

        $totalslide = 0;
        $query = mysql_query("SELECT COUNT(`id`) as count FROM `slider`") or die(mysql_error());
        $result = mysql_fetch_array($query);
        $totalslide = $result['count'];

        if(!$order == $totalslide)
        {
            $neworder = $order + 1;
            mysql_query("UPDATE `slider` SET `order`='$order' WHERE `order`='$neworder'") or die(mysql_error());
            mysql_query("UPDATE `slider` SET `order`='$neworder' WHERE `id`='$id'") or die(mysql_error());
        }       

        header('Location: ../admin/slider.php');
    }

当我单击图标时,代码可以正常工作。但结果,什么也没有发生。我的代码有问题还是逻辑错误?

谢谢你。

4

1 回答 1

0

在你的 mysql_query() 之后放这个,因为我相信你有一个 mysql 错误:

echo mysql_error();

让我们知道它说了什么。编写查询时,如果字段是 varchar、日期等,则应该只用单引号将值括起来,而不是数字等。我猜你的 ID 是一个数字,而且你的 ORDER 似乎也是一个数字,所以在你的更新中你应该有这样的东西:

mysql_query("UPDATE `slider` SET `order`=$neworder WHERE `id`=$id") or die(mysql_error());

这至少应该让你开始,尽管你可能有逻辑问题,因为我真的不明白为什么你要更新滑块表中的每一行,将旧顺序更改为新顺序,而不管 ID 是什么。

于 2013-01-07T23:30:00.940 回答