php文章排序后进行前移后移,写了语句没起作用,不知道哪出有关问题了
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php文章排序后进行前移后移,写了语句没起作用,不知道哪出有关问题了,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3930字,纯文字阅读大概需要6分钟。
内容图文
![php文章排序后进行前移后移,写了语句没起作用,不知道哪出有关问题了](/upload/InfoBanner/zyjiaocheng/227/436864c1925d4c3abf3b8040d309a3d1.jpg)
我对文章排序进行手动前移后移,但是sql语句好像就没起作用,哪位帮忙看看,我是实在看不出来了
/*前移*/
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 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。