ホームページ > バックエンド開発 > PHPチュートリアル > PHPの記事を並べ替えた後、前後に移動するステートメントを作成しましたが、どこに問題があるのか​​わかりません。

PHPの記事を並べ替えた後、前後に移動するステートメントを作成しましたが、どこに問題があるのか​​わかりません。

WBOY
リリース: 2016-06-13 12:13:13
オリジナル
1126 人が閲覧しました

PHP の記事を並べ替えた後、ステートメントを書いた後に前に移動したり、後ろに移動したりしましたが、何が問題だったのかわかりません。
手動で記事を前後に移動しましたが、SQL ステートメントが機能しないようです。本当に理解できません。

<br />/*前移*/<br />if($result=='up'){<br /> $sql0=$db->query("select sort from ".$db->table('product')." where id='$id'");<br /> $row=$db->fetch_array($sql0);<br /> if(!$row){<br />  $oldpx=1;<br /> }else{<br />  $oldpx=$row['sort'];<br /> }<br /> if($oldpx>1){<br /> $db->query("update ".$db->table('product')." set sort=sort+1 where sort=".$oldpx-1);<br /> $db->query("update ".$db->table('product')." set sort=sort-1 where id=".$id);<br /> }<br /> header("Location:product_list.php\n");<br /> exit;<br />}<br />/*后移*/<br />if($result=='down')<br />{<br />  $sql1=$db->query("select sort from ".$db->table('product')." where id='$id'");<br />  $row=$db->fetch_array($sql1);<br />  if(!$row){<br />   $oldpx=9999;<br />  }else{<br />   $oldpx=$row['sort'];<br />  }<br />  $sql2=$db->query("select sort from ".$db->table('product')." order by sort desc limit 1");<br />  $rows=$db->fetch_array($sql2);<br />  if(!$rows){<br />   $maxpx=9999;<br />  }else{<br />   $maxpx=$rows['sort'];<br />  }<br />  if($oldpx<$maxpx){<br />   $db->query("update ".$db->table('product')." set sort=sort-1 where sort=".$oldpx+1);<br />   $db->query("update ".$db->table('product')." set sort=sort+1 where id=".$id);<br />  }<br />  header("Location:product_list.php\n");<br />  exit;<br />}<br />
ログイン後にコピー


------解決策のアイデア----------------------
記事の整理が原因でしょうかはい、転送に関する限り、変更の修正としてsort-1を使用すると、現在のソート1がまだ次のソートよりも大きくない場合でも、データベースレコードは変更されない可能性があります。記事
----- -解決策----------------------
<br />/*前移*/<br />if($result=='up'){<br />?$sql0=$db->query("select?sort?from?".$db->table('product')."?<span   style="max-width:90%">where?id='$id'"</span>);<br />?$row=$db->fetch_array($sql0);<br />?if(!$row){<br />??$oldpx=1;<br />?}else{<br />??$oldpx=$row['sort'];<br />?}<br />?if($oldpx>1){<br />?$db->query("update?".$db->table('product')."?set?sort=sort+1?where?sort=".$oldpx-1);<br />?$db->query("update?".$db->table('product')."?set?sort=sort-1?where?id=".$id);<br />?}<br />?header("Location:product_list.php\n");<br />?exit;<br />}<br />/*后移*/<br />if($result=='down')<br />{<br />??$sql1=$db->query("select?sort?from?".$db->table('product')."<span style="color: #FF0000;">?where?id='$id'")</span>;<br />??$row=$db->fetch_array($sql1);<br />??if(!$row){<br />???$oldpx=9999;<br />??}else{<br />???$oldpx=$row['sort'];<br />??}<br />??$sql2=$db->query("select?sort?from?".$db->table('product')."?order?by?sort?desc?limit?1");<br />??$rows=$db->fetch_array($sql2);<br />??if(!$rows){<br />???$maxpx=9999;<br />??}else{<br />???$maxpx=$rows['sort'];<br />??}<br />??if($oldpx<$maxpx){<br />???$db->query("update?".$db->table('product')."?set?sort=sort-1?where?sort=".$oldpx+1);<br />???$db->query("update?".$db->table('product')."?set?sort=sort+1?where?id=".$id);<br />??}<br />??header("Location:product_list.php\n");<br />??exit;<br />}<br />
ログイン後にコピー

変更赤でマークされた場所から id='".$ id."'");
------解決策のアイデア------ ----
<br />if($_REQUEST["action"] == "up"){<br />	uppx($_REQUEST['goods_id']);<br />}<br />elseif($_REQUEST["action"] == "down"){<br />	downpx($_REQUEST['goods_id']);<br />}<br /><br />function uppx($goods_id)<br />{<br />	if(!$goods_id)<br />	{<br />	 $goods_id=0;<br />	}<br />	<br />	$sql=$GLOBALS['db']->query("select px from ".$GLOBALS['db']->table('product')." where id=".$goods_id);<br />	$rs=$GLOBALS['db']->fetch_array($sql);<br />	if(!$rs)<br />	{<br />	 $oldpx = 1;<br />	}<br />	else<br />	{<br />	 $oldpx = $rs['px'];<br />	}<br />    if($oldpx>1){<br />	 $oldpx=$oldpx-1;<br />	 $GLOBALS['db']->query("update ".$GLOBALS['db']->table('product')." set px=px+1 where px=".$oldpx);<br />	 $GLOBALS['db']->query("update ".$GLOBALS['db']->table('product')." set px=px-1 where id=".$goods_id);<br />	}	<br />    header("Location:product_list.php");<br />	exit;	<br />}<br /><br />function downpx($goods_id)<br />{<br />	if(!$goods_id)<br />	{<br />	 $goods_id=0;<br />	}<br />	$sql=$GLOBALS['db']->query("select px from ".$GLOBALS['db']->table('product')." where id=".$goods_id);<br />	$rs=$GLOBALS['db']->fetch_array($sql);<br />	if(!$rs)<br />	{<br />	 $oldpx=1;<br />	}<br />	else<br />	{<br />	 $oldpx=$rs['px'];<br />	}<br />	//假如$oldpx=1的话<br />    $sql1=$GLOBALS['db']->query("select * from ".$GLOBALS['db']->table('product')." order by px desc limit 1");<br />	$row=$GLOBALS['db']->fetch_array($sql1);<br />	if(!$row)<br />	{<br />	 $maxpx=999;<br />	}<br />	else<br />	{<br />	 $maxpx=$row['px'];<br />	}<br />	//到这里那么最大的$maxpx=4<br />    if($oldpx<$maxpx){<br />	 $oldpx=$oldpx+1;<br />	 $GLOBALS['db']->query("update ".$GLOBALS['db']->table('product')." set px=px-1 where px=".$oldpx);<br />	 $GLOBALS['db']->query("update ".$GLOBALS['db']->table('product')." set px=px+1 where id=".$goods_id);<br />	}<br />	header("Location:product_list.php");<br />	exit;	<br />}<br />
ログイン後にコピー

私はあなたのコードに基づいて完全なデモを行い、あなたが望む効果を達成しました

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート