20. april 2011 - 20:09Der er
3 kommentarer og 1 løsning
Ombytning af id'er
Hej jeg har min database.
menu -> id, titel, content, parent_id, order.
Alle oprettet menu'er får et unik id.
Parent_id henviser til deb id som en side/menu er oprettet under.
eks så har jeg en parent med id(1) som heder Forside. Så to subs: id(2), parent_id(1), titel(side 1), order(1) id(3), parent_id(1), titel(side 2), order(2)
Nu er det så jeg vil trykke på et link som så skal bytte om på id1 og id2's order, alså op eller ned alt efter hvilket link man trykker på
som vist her. <td align="center" style="border-bottom:1px #CCC solid;"><a href="?admin_page=menu&order=up&order_id='.$Get->id.'">UP</a>
dette er mit udskat men det virker ikke :/ kan bare ikke komme vidre
if($_GET['order'] == "up"){ $order_id = $_GET['order_id']; $SQL = "SELECT `order`, `id`, `parent_id` FROM menu WHERE id = '$order_id'"; $loadin = mysql_query($SQL) or die("Error"); while ($Get = mysql_fetch_object($loadin)){
$id = $Get->id; $parent_id = $Get->parent_id; $order = $Get->order; $order2 = $Get->order; $order--; $the_parent = mysql_fetch_array(mysql_query("select id from menu m where m.parent_id =" . $parent_id . " and m.order = " . $change_order, $link));
mysql_query("update menu set `order` = '$order' WHERE id = '$id'") or die ("<strong>Fejl</strong> - Der skete en teknisk fejl, prøv igen senere.".mysql_error()); mysql_query("update menu set `order` = '$order2' WHERE id = '$the_parent'") or die ("<strong>Fejl</strong> - Der skete en teknisk fejl, prøv igen senere.".mysql_error()); } }
nogle som har en bedre så skriv enlig så får de 200 point. også for at gøre den mere simpel.
if($_GET['order'] == "up"){ $order_id = $_GET['order_id']; $SQL = "SELECT `order`, `id`, `parent_id` FROM menu WHERE id = '$order_id'"; $loadin = mysql_query($SQL) or die("Error"); while ($Get = mysql_fetch_object($loadin)){ $id = $Get->id; $parent_id = $Get->parent_id; $order = $Get->order; $order2 = $Get->order; $order--; $query = "SELECT id FROM menu WHERE parent_id = '0' && `order` = '$order'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result) or die(mysql_error()); $the_parent = $row['id']; mysql_query("update menu set `order` = '$order2' WHERE id = '$the_parent'") or die ("<strong>Fejl</strong> - Der skete en teknisk fejl, prøv igen senere.".mysql_error()); mysql_query("update menu set `order` = '$order' WHERE id = '$id'") or die ("<strong>Fejl</strong> - Der skete en teknisk fejl, prøv igen senere.".mysql_error()); } }
Her er de færdige hvis nogle har løst at bruge dem ;o)
if($_GET['order'] == "up"){ $order_id = $_GET['order_id']; $SQL = "SELECT `order`, `id`, `parent_id` FROM menu WHERE id = '$order_id'"; $loadin = mysql_query($SQL) or die("Error"); while ($Get = mysql_fetch_object($loadin)){ $order = $Get->order; if($order > "1"){ $id = $Get->id; $parent_id = $Get->parent_id; $order = $Get->order; $order2 = $Get->order; $order--; $query = "SELECT id FROM menu WHERE parent_id = '0' && `order` = '$order'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result) or die(mysql_error()); $the_parent = $row['id']; mysql_query("update menu set `order` = '$order2' WHERE id = '$the_parent'") or die ("<strong>Fejl</strong> - Der skete en teknisk fejl, prøv igen senere.".mysql_error()); mysql_query("update menu set `order` = '$order' WHERE id = '$id'") or die ("<strong>Fejl</strong> - Der skete en teknisk fejl, prøv igen senere.".mysql_error()); } } }
if($_GET['order'] == "down"){ $order_id = $_GET['order_id']; $SQL = "SELECT `order`, `id`, `parent_id` FROM menu WHERE id = '$order_id'"; $loadin = mysql_query($SQL) or die("Error"); while ($Get = mysql_fetch_object($loadin)){ $order = $Get->order; $how_high = mysql_result(mysql_query("SELECT COUNT(*) FROM menu WHERE parent_id = '0'"),0); if($order < $how_high){ $id = $Get->id; $parent_id = $Get->parent_id; $order = $Get->order; $order2 = $Get->order; $order++; $query = "SELECT id FROM menu WHERE parent_id = '0' && `order` = '$order'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result) or die(mysql_error()); $the_parent = $row['id']; mysql_query("update menu set `order` = '$order2' WHERE id = '$the_parent'") or die ("<strong>Fejl1</strong> - Der skete en teknisk fejl, prøv igen senere.".mysql_error()); mysql_query("update menu set `order` = '$order' WHERE id = '$id'") or die ("<strong>Fejl2</strong> - Der skete en teknisk fejl, prøv igen senere.".mysql_error()); } } }
Der findes mange JavaScripts, der tillader dig at sortere elementer nemt i din browser. Nogle af disses output gør det så nemt, at du bagefter blot kan sende en enkelt UPDATE-sætning til din database, hvorefter det hele bliver sorteret perfekt. Det ville jeg kigge på, hvis jeg var dig.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.