Sortierproblem

xtraMen

Erfahrenes Mitglied
Hallo Leute,

ich habe ne Spalte mit z.b. 5 Einträgen(1,2,3,4,5).
Nachdem ich Datensatz Nr. 3 lösche sieht das so aus(1,2,4,5).

Jetzt müsste es aber nach dem Löschen so sein(1,2,3,4)

Dazu habe ich mir überlegt das ich in der Löschfunktion, nach dem Löschen eine DB Abfrage starte die mir alle Datensätze ausgibt die größer als der gelöschte(Nr. 3) sind.
Dies lasse ich dann jeweils -1 Updaten.

Der Grundgedanke ist sicherlich richtig, aber bei mir will das mit dem Code nicht so klappen.
Das Abfragen ist kein Problem aber das Updaten der Werte die größer als der gelöschte sind únd dann noch -1.

Soviel durchblick hab ich leider noch nicht und mein schlaues Buch ist für absolute Anfänger und spuckt das auch nicht aus.

Deshalb suche ich bei euch nach Rat und wünsche ein schönes Weekend.

Danke für evtl. Lösungen oder Anregungen.
 
Danke aber ich sollte ein wenig präziser sein.

Ich möchte aus der Tabelle "$table_boxen" die Spalte "boxen_sort" so Updaten, das bei allen Einträgen dieser Spalte, die gleichzeitig den Wert "$_GET[seite]" haben und größer als "$_GET[loeschen]", eins abgezogen wird(-1).

Kompliziert, kompliziert....aber mir fällt sonst kein Weg ein wie ich die Einträge anhand meines genannten beispieles neu Sortieren kann.

Vielleicht hat ja jemand noch ne Idee.

Gruss:(
 
PHP:
$sql = "UPDATE
            ".$tabelle_boxen."
        SET
            boxen_sort = boxen_sort - 1
        WHERE
            seite = '".$_GET['seite']."'
            AND
            boxen_sort > '".$_GET['loeschen']."'";
So?
 
Jo Danke ich glaub das isses.
Jetzt muss ich das nur noch so hinbekommen das es gleichzeitig ausgeführt wird wenn ich einen Eintrag lösche.
Ich hab das mal so versucht, aber das Update wird jetzt immer ausgeführt sobald man die Seite aktualisiert, auch wenn keine Variable in der URL ist.
Das Löschen klappt jedoch.
Wo könnte der Fehler liegen ?.

PHP:
   if ($loeschen == "$_GET[loeschen]") {

$dbanfrage = "DELETE FROM $table_boxen  WHERE ID = '".$_GET[loeschen]."'";

mysql_query($dbanfrage , $dbverbindung); 

}

 if ($update == "$_GET[loeschen]") {
$dbanfrage2 =  "UPDATE 
            $table_boxen
        SET 
            boxen_sort = boxen_sort - 1 
        WHERE 
            boxen_position = 'links' 
            AND 
            boxen_sort > 2";
mysql_query($dbanfrage2 , $dbverbindung);

}

DAnkeschön für die Hilfe.:-)

gruss
 
Zuletzt bearbeitet:
Nein, du kannst eine Abfrage in deinem Sinne nicht so aufbauen:
PHP:
if ($loeschen == "$_GET[loeschen]") {
Wenn du überprüfen willst, ob der WErt der Variable $loeschen gleich dem in der per GET übergebenen Variable $_GET['loeschen'] ist, dann mach das bitte so:
PHP:
if ($loeschen == $_GET['loeschen']) {

Falls du aber den Wert der übergebenen Variable prüfen möchtest, dann tu das bitte so:
PHP:
if ($_GET['loeschen'] == 'Wert oder auch Zahl') {

Zu deinem Problem: Welche Werte nehmen denn $loeschen und $update an? Lass sie dir am besten mal testweise ausgeben. Du schreibst außerdem, dass das Update gleichzeitig mit dem (du meintest wohl mit bzw. nach dem) Löschen ausgeführt werden soll. Dafür müssten aber (geht man nach deinem aktuellen Code), sowohl $update als auch $loeschen den gleichen Wert haben, hast du daran gedacht? Der Codeabschnitt, in dem diese Variablen deklariert werden, wäre bestimmt auch nicht uninteressant, vielleicht könntest du den posten.


PS: Schlüssel assoziativer Arrays setzt man wie Strings in Anführungszeichen!
 
Zuletzt bearbeitet:
Zurück