aşagıdaki sayfaya;

?page=yazar-sirala&yazarno=50&yon=yukari
?page=yazar-sirala&yazarno=50&yon=asagi

linkleri kullanılıyor.

Bu sıralama manuel bir sıralama. Yani primary key ya da alfabetik bir yöntem değil asagi - / yukarı + yapılarak, sıralamaya sokuluyor.

yazarlar tablosuna sira diye bir int(3) alan ekledim ve 1 değerini atıyorum. ve buna +/- yaparak sıralamaya sokmaya çalışıyorum.

Aşağıdaki kod, normalde bir yazarı yukarı aldıgımda diğerlerinden 1 fazla yapacak olmasına ragmen bir türlü istediği yere getirmiyor.

<?php
$yazarno = trim(intval($_GET['yazarno']));
$siralax = trim(intval($_GET['sirala']));
$sx = trim(intval($_GET['s']));
$yonu = trim($_GET['yon']);

$lit_yazarno = mysql_query("SELECT * FROM yazarlar WHERE yazarno='$yazarno'");
$lix = mysql_fetch_array($lit_yazarno);


$sira = $lix["sira"];



if ($yonu == yukari && $yazarno > 0) {
$yeni_id = $sira-1;
$dusur = $sira+1000;
$duzelt = $dusur-1000;

if ($duzelt == "0") {
header("Location: index.php?page=yazar-incele&sirala=$siralax&s=$sx");
}


@ $guncelle = mysql_query("UPDATE yazarlar SET sira='$dusur' WHERE sira ='$yeni_id'");
@ $guncelle2 = mysql_query("UPDATE yazarlar SET sira='$yeni_id' WHERE sira='$sira'");
@ $guncelle3 = mysql_query("UPDATE yazarlar SET sira='$duzelt' WHERE sira='$dusur'");



header("Location: index.php?page=yazar-incele&sirala=$siralax&s=$sx");

} else if ($yonu == asagi && $sira > 0) {
$yeni_id = $sira+1;
$yukselt = $sira-1000;
$duzelt = $yukselt+1000;


if ($duzelt == 0) {
header("Location: index.php?page=yazar-incele&sirala=$siralax&s=$sx");
}


@ $guncelle = mysql_query("UPDATE yazarlar SET sira='$yukselt' WHERE sira ='$yeni_id'");
@ $guncelle2 = mysql_query("UPDATE yazarlar SET sira='$yeni_id' WHERE sira='$sira'");
@ $guncelle3 = mysql_query("UPDATE yazarlar SET sira='$duzelt' WHERE sira='$yukselt'");




header("Location: index.php?page=yazar-incele&sirala=$siralax&s=$sx");



}
?>