?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");
}
?>