php文章排序后进行前移后移,写了语句没起作用,不知道哪出问题了?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php文章排序后进行前移后移,写了语句没起作用,不知道哪出问题了?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3809字,纯文字阅读大概需要6分钟。
内容图文
![php文章排序后进行前移后移,写了语句没起作用,不知道哪出问题了?](/upload/InfoBanner/zyjiaocheng/202/af460f41a2b84958a79c561b1f40e10d.jpg)
/*前移*/if($result=='up'){ $sql0=$db->query("select sort from ".$db->table('product')." where id='$id'"); $row=$db->fetch_array($sql0); if(!$row){ $oldpx=1; }else{ $oldpx=$row['sort']; } if($oldpx>1){ $db->query("update ".$db->table('product')." set sort=sort+1 where sort=".$oldpx-1); $db->query("update ".$db->table('product')." set sort=sort-1 where id=".$id); } header("Location:product_list.php\n"); exit;}/*后移*/if($result=='down'){ $sql1=$db->query("select sort from ".$db->table('product')." where id='$id'"); $row=$db->fetch_array($sql1); if(!$row){ $oldpx=9999; }else{ $oldpx=$row['sort']; } $sql2=$db->query("select sort from ".$db->table('product')." order by sort desc limit 1"); $rows=$db->fetch_array($sql2); if(!$rows){ $maxpx=9999; }else{ $maxpx=$rows['sort']; } if($oldpx<$maxpx){ $db->query("update ".$db->table('product')." set sort=sort-1 where sort=".$oldpx+1); $db->query("update ".$db->table('product')." set sort=sort+1 where id=".$id); } header("Location:product_list.php\n"); exit;}
回复讨论(解决方案)
会不会是文章的sort并不是连续的,就前移来说你取sort-1作为调教来修改有可能没修改到数据库记录,然后即使当前sort+1可能还是没有比下个文章的sort大
/*前移*/if($result=='up'){ $sql0=$db->query("select sort from ".$db->table('product')." where id='$id'"); $row=$db->fetch_array($sql0); if(!$row){ $oldpx=1; }else{ $oldpx=$row['sort']; } if($oldpx>1){ $db->query("update ".$db->table('product')." set sort=sort+1 where sort=".$oldpx-1); $db->query("update ".$db->table('product')." set sort=sort-1 where id=".$id); } header("Location:product_list.php\n"); exit;}/*后移*/if($result=='down'){ $sql1=$db->query("select sort from ".$db->table('product')." where id='$id'"); $row=$db->fetch_array($sql1); if(!$row){ $oldpx=9999; }else{ $oldpx=$row['sort']; } $sql2=$db->query("select sort from ".$db->table('product')." order by sort desc limit 1"); $rows=$db->fetch_array($sql2); if(!$rows){ $maxpx=9999; }else{ $maxpx=$rows['sort']; } if($oldpx<$maxpx){ $db->query("update ".$db->table('product')." set sort=sort-1 where sort=".$oldpx+1); $db->query("update ".$db->table('product')." set sort=sort+1 where id=".$id); } header("Location:product_list.php\n"); exit;}
红色标注的那里改成 where id='".$id."'");
if($_REQUEST["action"] == "up"){ uppx($_REQUEST['goods_id']);}elseif($_REQUEST["action"] == "down"){ downpx($_REQUEST['goods_id']);}function uppx($goods_id){ if(!$goods_id) { $goods_id=0; } $sql=$GLOBALS['db']->query("select px from ".$GLOBALS['db']->table('product')." where id=".$goods_id); $rs=$GLOBALS['db']->fetch_array($sql); if(!$rs) { $oldpx = 1; } else { $oldpx = $rs['px']; } if($oldpx>1){ $oldpx=$oldpx-1; $GLOBALS['db']->query("update ".$GLOBALS['db']->table('product')." set px=px+1 where px=".$oldpx); $GLOBALS['db']->query("update ".$GLOBALS['db']->table('product')." set px=px-1 where id=".$goods_id); } header("Location:product_list.php"); exit; }function downpx($goods_id){ if(!$goods_id) { $goods_id=0; } $sql=$GLOBALS['db']->query("select px from ".$GLOBALS['db']->table('product')." where id=".$goods_id); $rs=$GLOBALS['db']->fetch_array($sql); if(!$rs) { $oldpx=1; } else { $oldpx=$rs['px']; } //假如$oldpx=1的话 $sql1=$GLOBALS['db']->query("select * from ".$GLOBALS['db']->table('product')." order by px desc limit 1"); $row=$GLOBALS['db']->fetch_array($sql1); if(!$row) { $maxpx=999; } else { $maxpx=$row['px']; } //到这里那么最大的$maxpx=4 if($oldpx<$maxpx){ $oldpx=$oldpx+1; $GLOBALS['db']->query("update ".$GLOBALS['db']->table('product')." set px=px-1 where px=".$oldpx); $GLOBALS['db']->query("update ".$GLOBALS['db']->table('product')." set px=px+1 where id=".$goods_id); } header("Location:product_list.php"); exit; }
根据你那代码我自己完整的演示了一遍,实现你要的效果了
内容总结
以上是互联网集市为您收集整理的php文章排序后进行前移后移,写了语句没起作用,不知道哪出问题了?全部内容,希望文章能够帮你解决php文章排序后进行前移后移,写了语句没起作用,不知道哪出问题了?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。