Menüposition festlegen / ändern (Hab im Moment einen Blackout)

chris4712

Erfahrenes Mitglied
Abend!

Ich möchte dass man die Position eines Menüpunkts ändern kann. Zerbreche mir nun schon die ganze Zeit den Kopf darüber wie ich es am besten anstelle.
Vielleicht kann mir einer von Euch einen Tipp geben.

Folgendes habe ich schon bzw. ist vorgegeben:
Das Menü steht in einer MySQL Datenbank.
Die Menüpunkte sind folgendermaßen sortiert
01 -> Punkt in Ebene 0 des Menüs (Name: Menüpunkt 1)
01.01 -> Erster Unterpunkt von Menüpunkt 1
01.02 -> Zweiter Unterpunkt von Menüpunkt 1
01.02.01 -> Erster Unterpunkt vom ersten Unterpunkt von Menü 1 :)
01.03 -> Dritter Unterpunkt von Menü1
02 -> Zweiter Menüpunkt in Ebene 0

usw..

Folgenden "Code" habe ich mir schon ausgedacht, habe aber keine Ahnung wie ich nun am besten weitermache (Typisches Brett vorm Kopf):
PHP:
// Speichert die übergebene Variable in einer anderen ab, um das ganze etwas einfacher zu machen
$NewPos = str_replace('.', '', $_POST['NewPos']);
$NewPos = str_split($NewPos, 2);
 
// Speichert die Datenbank wieder in ein array
$MySQLQuery = "SELECT
							 MenuPos,
							 ID
						 FROM $UserDB_Content WHERE MenuItem != 'Page' AND MenuPos != '-1' AND ID != '$PageID' ORDER BY MenuPos ASC";
 
$result = mysql_query($MySQLQuery);
 
$index = 0;
while($PageDats = mysql_fetch_assoc($result))
{
// Speichert den Inhalt der Datenbank in ein Array
$ArrayPD[$index]['ID'] = $PageDats['ID'];
$ArrayPD[$index]['MenuPos'] = $PageDats['MenuPos']; 
$index++;
} 
 
// Läuft durch das Array
for ($a = 0; $a< count($ArrayPD); $a++)
{
// Schreibt die Positionsangabe in ein Array
$Pos = str_replace('.', '', $ArrayPD[$a]['MenuPos']);
$Pos = str_split($Pos, 2);
 
// Nun wird anhand der Länge des Arrays geschaut ob die alte Position (aus dem Array) die gleiche Länge hat wie die neue Position
if (count($Pos) == count($NewPos))
{
		// Die Größe der Arrays ist gleich.
		// Nun wird von vorne angefangen um den Inhalt der einzelnen Arrays zu überprüfen
		for ($b=0; $b< (count($Pos)-1); $b++)
		{
			// Nun werden die verschiedenen Inhalte der Arrays verglichen
			if ($Pos[$b] != $NewPos[$b])
			 break;
			else
			 echo "Sind gleich<BR>";
		} 
}
}

Zur Erklärung:
$PageID ist die Variablen in der die eindeutige ID der Seite steht die eingefügt werden soll (nicht die Position!)
$_POST['NewPos'] ist die Position an die die Seite soll.

Ich hoffe dass irgendjemand eine zündende Idee hat.
Schon mal vielen Dank fürs lesen!!

Gruß

Christian
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück