ホームページ  >  記事  >  バックエンド開発  >  PHP の記事を並べ替えた後、ステートメントを書いた後に前に移動したり、後ろに移動したりしましたが、何が問題だったのかわかりません。

PHP の記事を並べ替えた後、ステートメントを書いた後に前に移動したり、後ろに移動したりしましたが、何が問題だったのかわかりません。

WBOY
WBOYオリジナル
2016-06-23 13:42:15870ブラウズ

記事を手動で前後に移動させていますが、SQL ステートメントが機能していないようです。誰か助けてくれませんか。本当に理解できません


ディスカッション (解決策) に返信

記事のソートが連続していない可能性がありますか? 転送に関する限り、変更の調整としてsort-1を使用すると、現在のsort+1がまだ変更されていない場合でも、データベースのレコードが変更されない可能性があります。次の記事の種類よりも大きい

/*前移*/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($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;}

私はあなたのコードに基づいて完全にそれを実証し、あなたが望む効果を達成しました

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。