これを実現する1つの方法は、同じページで送信することです。たとえば、position.php
3つのレコードがある場合は、次のことを考慮してください。
John bla bla(ポジション1)
Mary bla bla(ポジション2)
George bla bla(ポジション3)
最初はこのようなリンクが必要です
<a href="position.php?position=<?=$position?>&id=<?=$id?>">up</a>
$ positionは、上記のように要素の現在の位置であり、idはテーブルのIDです。
あなたがそのリンクをクリックすると
$_GET['position'] and $_GET['id']
現在のレコードの位置とIDがあります。
だからあなたは次のことができます
<?php
//connect to DB
if(isset($_GET['position']) && isset($_GET['id'])){
$line = $_GET['position'];
$id = $_GET['id'];
//if line is not the first one
if($line!=1){
$query = "select id,position from pages where position<$line order by position desc limit 0,1";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$gotoLine = $row['position'];//line to go to
$idLine = $row['id'];
//one position up
$queryUpdate = "update pages set position=$gotoLine where id=$id";
mysql_query($queryUpdate);
//one position down
$queryUpdate2 = "update pages set position=$line where id=$idLine";
mysql_query($queryUpdate2);
}
}
$queryLinks = "select * from pages order by position";
$resultLinks = mysql_query($queryLinks);
while($rowLinks = mysql_fetch_array($resultLinks)){
$name = $rowLinks['name'];
$id = $rowLinks['id'];
$position = $rowLinks['position'];
echo "$name<a href='position.php?position=$position&id=$id'> up </a><br/>";
}
?>