我正在尝试用PHP做一个简单的CMS。在Slider管理中,我想更改已添加的照片的顺序。
<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。
slideup.php
<?php
include('includes/functions.php');
$order=$_REQUEST['order'];
$id=$_REQUEST['id'];
goUp($order, $id);
?>
slidedown.php
<?php
include('includes/functions.php');
$order=$_REQUEST['order'];
$id=$_REQUEST['id'];
goDown($order, $id);
?>
的functions.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');
}
当我点击图标时,代码工作没有任何问题。但结果却没有任何反应。我的代码或逻辑错误有问题吗?
谢谢。
答案 0 :(得分:0)
你的mysql_query()之后把它放了,因为我相信你有一个mysql错误:
echo mysql_error();
让我们知道它的内容。当您编写查询时,如果字段是varchar,date等,则应该只用单引号括起值,但不能用于数字等。我猜你的ID是一个数字,看来你的ORDER也是一个数字,所以在你的更新中你应该有这样的东西:
mysql_query("UPDATE `slider` SET `order`=$neworder WHERE `id`=$id") or die(mysql_error());
这至少应该让你开始,虽然你可能有逻辑问题,因为我不太明白为什么你要更新滑块表中的每一行,将旧订单更改为新订单而不管ID如何