PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Links in SQL Db Sortieren.



dadie
07.11.2005, 19:32
Hallo ,

Es geht mir um folgendes , ich erstelle ein CMS und will in diesem die Links Frei sortieren.
Wenn ich z.B. folgende Links hätte :


Home
Zweiter_Link
1337 Link
RPG Ring Rockt


Würde ich das normal über Asc und Desc ordnen währe es nie Frei.Ich will also die Links alle Frei anordnen können.

Meine erste idee währe eine Ordnungs ID zu haben die beim Speichern des Linkes die Auto ID beinhaltet.Problem ist nur wie vergebe ich den wert :/

Das ganze währe so wieich es mir vorgestellt habe etwas kompliziert und ich weiss es gerade zu das es auch einen Einfacheren weg gibt , nur habe ich noch keinen gefunden :/

Hat jemand von euch eine idee?

Mfg Dadie

Maisaffe
07.11.2005, 19:36
Blöde Idee:
Machs mit input Feldern.

Da gibt man für "Doofman" den Wert 39202 an, für "Jamba" die 666666, für "Blöd" die 22 und für "Gaga" die 22.

Dann lässt das sortieren nach der ID, und bei welchen die die gleiche ID haben per ASC.
Öhm, werde Dir jetzt aber bestimmt nicht geholfen haben... Habe ähnliches Problem. :/

Dennis

Manni
07.11.2005, 20:01
Mach deine Linkeinträge in eine Tabelle mit den Werten ID, Text, Link, Position. Position und ID setzt du auf auto_increment. Dann zeigst du im Adminmenü die Links an und daneben jeweil einen Button für hoch und runter. Beim Klick darauf vertauschst du einfach die Positionswerte der beiden Felder (bei hoch eben mit dem des darüberliegenden Feldes)
Ich hoffe du hast einigermaßen verstanden, was ich sagen wollte ;)

dadie
07.11.2005, 20:23
Problem ist folgendes :


#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

:/

Manni
07.11.2005, 20:34
Dann machst du es eben so:

<?php
$pos = mysql_result(mysql_query("SELECT `position` FROM `links` ORDER BY `position` DESC LIMIT 1;"), 0, 0);
mysql_query("INSERT INTO `links` (`position` ... ) VALUES ('".$pos."' ... );");
?>
(Habs nicht getestet, können Verschreiber drin sein ;))