Witam. Mam problem. Otóż mam dostępną z panelu administracyjnego opcję przesuwania podstron na stronie (kolejność). Odpowiada za to taki kod:
if (isset($_GET['moveup'])) {
if ($_GET['moveup']=='1') {
header('Location: admin.php?menu=yes&view=yes'); }
else {
$order = $_GET['moveup'];
$order2 = $order-1;
$link = mysql_query("SELECT id, order_link FROM menu WHERE order_link='$order'"); $link2 = mysql_query("SELECT id, order_link FROM menu WHERE order_link='$order2'");
$up = $link['order_link']-1;
$down = $link2['order_link']+1;
$up2 = mysql_query("UPDATE menu SET order_link='$up' WHERE id='".$link['id']."'"); $down2 = mysql_query("UPDATE menu SET order_link='$down' WHERE id='".$link2['id']."'");
if($up2 && $down2) {
header('Location: admin.php?menu=yes&view=yes'); }
else {
header('Location: admin.php?menu=yes&view=yes'); }
}
}
elseif ((isset($_GET['movedown']))) { $order = $_GET['movedown'];
$order2 = $order+1;
$link = mysql_query("SELECT id, order_link FROM menu WHERE order_link='$order'"); $link2 = mysql_query("SELECT id, order_link FROM menu WHERE order_link='$order2'");
$up = $link['order_link']+1;
$down = $link2['order_link']-1;
$up2 = mysql_query("UPDATE menu SET order_link='$up' WHERE id='".$link['id']."'"); $down2 = mysql_query("UPDATE menu SET order_link='$down' WHERE id='".$link2['id']."'");
if($up2 && $down2) {
header('Location: admin.php?menu=yes&view=yes'); }
else {
header('Location: admin.php?menu=yes&view=yes'); }
}
W każdym razie to działa. Chciałem dodać sobie inną funkcjonalność. Otóż zakładając, że mam np 20 podstron usuwam podstronę o order_link=9 i chcę aby podstrony, które mają większe order_link zostały przeniesione o poziom do góry, tj. np. 10 na 9, 11 na 10, 12 na 11 itd. Skleciłem taki kod:
<?php
$order_link = $_GET['delete'];
$delete = mysql_query("DELETE FROM menu WHERE order_link='$order_link'"); $wieksze = mysql_query("SELECT order_link, id FROM menu WHERE order_link>'$order_link'");
$upd = mysql_query("UPDATE menu SET order_link=order_link-1 WHERE order_link='".$row2['order_link']."'"); }
?>
No i tu zaczynają się jaja. Niby raz pisze że usunęło i usuwa a nie przesuwa pozostałych podstron, to drugim razem wyskakuje błąd, a na końcu mam np. 3 podstrony o order_link=5. Nie wiem dlaczego tak się dzieje. Może błąd w kodzie którego nie dostrzegłem ? Proszę o porady.