Seiten im Menü verschieben (via sortid+ or -)

  • Themenstarter Themenstarter noctaru
  • Beginndatum Beginndatum
N

noctaru

Ich bin gerade dabei mir einene kleinen Administrationsbereich für meine Seite zu schaffen. Dazu habe ich mir sämtliche Seiten mit allen Daten aus der Datenbank aufgelistet.
So jetzt ist das Problem folgendes:

Die Seiten sind jeweils mit einer "sortid" versehen. Durch diese werden die Seiten im Menü sortiert. Jetzt ist das Problem, dass wenn ich eine Seite mittendrinnen einfügen will, muss ich sämtliche sortid's die höher als die sortid sind die die neue Seite bekommt um eins hochzählen. Diese Arbeit würde ich mir natürlich gerne ersparen, in dem ich vieleicht irgendwie so Pfeile neben die Seiten setzte, die wenn man drauf drückt, die sortid um eins verringern oder erhöhen. Dass somit die Seite hoch oder runter wandern kann.
Die Frage ist hier nur, wie geht das am besten?

Wer noch eine bessere Möglichkeit wüste, nur her damit.
 
Ich weiß nicht, ob man das so machen kann, aber probiers doch mal:
PHP:
$sql1 = "UPDATE `seiten` SET `sortid` = `sortid` + 1 WHERE `sortid` >= '".$neueSeiteSortId."'";
// und
$sql2 = "UPDATE `seiten` SET `sortid` = '".$neueSeiteSortId."' WHERE `seiteID` = '".$neueSeiteId."'";
 
Ich habe es jetzt so gemacht:

PHP:
$vid = $_GET['id'];
$sortid = $_GET['sortid'];

#Sortid up
if($action=="up"){

$sortid = $sortid-1;
$query = "UPDATE `site` SET `sortid` = `sortid` +1 WHERE `sortid` = '".$sortid."'";
$erg   = mysql_query($query) or die(mysql_errno().": ".mysql_error());

$query = "UPDATE `site` SET `sortid` = `sortid` -1 WHERE `id` = '".$vid."'";
$erg   = mysql_query($query) or die(mysql_errno().": ".mysql_error());
echo '<meta http-equiv="refresh"content="0;URL='.$_SERVER['PHP_SELF'].'">';
}


#Sortid down
if($action=="down"){
$sortid = $sortid+1;
$query = "UPDATE `site` SET `sortid` = `sortid` -1 WHERE `sortid` = '".$sortid."'";
$erg   = mysql_query($query) or die(mysql_errno().": ".mysql_error());

$query = "UPDATE `site` SET `sortid` = `sortid` +1 WHERE `id` = '".$vid."'";
$erg   = mysql_query($query) or die(mysql_errno().": ".mysql_error());
echo '<meta http-equiv="refresh"content="0;URL='.$_SERVER['PHP_SELF'].'">';



Wüste wer vieleicht eine einfachere Methode?
 
Zurück