Verständnis Problem mir DB Update

xtraMen

Erfahrenes Mitglied
Hallo Leute,

erst einmal vielen Dank für die gute Unterstützung in diesem Forum.

Ich möchte in der Spalte "boxen_sort" Updaten, was um einen Wert(1) kleiner ist als "$_GET[sort]".
Bisher habe ich es nur geschafft, ALLES was kleiner ist als "$_GET[sort]" zu aktualisieren.

Ist das überhaupt möglich.

Hier mal mein Code:

PHP:
  $dbanfrage4 =  "UPDATE
            $table_boxen
        SET
            boxen_sort = boxen_sort - 1
        WHERE
            boxen_position = '".$_GET[pos]."'
            AND
            boxen_sort < '".$_GET[sort]."'
            ";
            
mysql_query($dbanfrage4 , $dbverbindung);

Ich bedanke mich im Vorraus.;)
 
Ich möchte in der Spalte "boxen_sort" Updaten, was um einen Wert(1) kleiner ist als "$_GET[sort]".
Bisher habe ich es nur geschafft, ALLES was kleiner ist als "$_GET[sort]" zu aktualisieren.

Hi,
ich bin leider nicht so der Spezi in sachen SQL Syntax, dafür brauch ich meinen debugger, den ich grade nicht hab, aber prinzipiell:

... WHERE boxen_sort = ($_GET[sort] -1)

Gruß
TiM
 
Danke ist eigentlich Logisch.
Jedoch bekomme ich die Fehlermeldung:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING

Wenn ich das so mache:

PHP:
    if ($status == "oben") {

$dbanfrage4 =  "UPDATE
            $table_boxen
        SET
            boxen_sort = boxen_sort + 1
        WHERE
            boxen_position = '".$_GET[pos]."'
            AND
            boxen_sort = '".$_GET[sort]-1."'
            ";
            
mysql_query($dbanfrage4 , $dbverbindung);
header('Location: boxen_neu.php');
}

Vielleicht noch einTipp?
 
Also ich habs rausgefunden, habs in eine Variable gepackt.
Jetzt hab ich aber ein anderes Problem.
Ich habe folgende Reihenfolge in meiner Spalte:

1
2
3
4
5

Mit meinem Code möchte ich eigentlich erreichen das wenn ich z.b. die (3) an die Stelle der (2) setze und die vorige (2) zur (3) wird.
Also im Prinzip möchte ich die 2 und die 3 austauschen.
Aber irgendwie klappt das nicht so ganz mit meinem Code:

PHP:
 $nach_unten = $_GET[sort]-1 ;
echo $nach_unten;
 if ($status == "oben") {

$dbanfrage3 =  "UPDATE
            $table_boxen
        SET
            boxen_sort = boxen_sort - 1
        WHERE
            id = '".$_GET[id]."'
            AND
            boxen_sort = '".$_GET[sort]."' ";
            
mysql_query($dbanfrage3 , $dbverbindung);

}

 if ($status == "oben") {

$dbanfrage4 =  "UPDATE
            $table_boxen
        SET
            boxen_sort = boxen_sort + 1
        WHERE
            boxen_position = '".$_GET[pos]."'
            AND
            boxen_sort = ' $nach_unten '
            ";
            
mysql_query($dbanfrage4 , $dbverbindung);
header('Location: boxen_neu.php');
}

Gruss
 
Versuch mal folgendes:
PHP:
if( $status == 'oben' ) {
	$dbanfrage4 =  "
		UPDATE
		        `".$table_boxen."`

		  SET
		        `boxen_sort` = `boxen_sort` + 1

		  WHERE
		        `boxen_position` = '".$_GET['pos']."'
		    AND `boxen_sort` = '".($_GET['sort']-1)."'
	";

	mysql_query($dbanfrage4 , $dbverbindung);
	header('Location: boxen_neu.php');
}
Ich halte es jedoch für sehr fahrlässig, die Tabelle anhand von per GET-Methode übergebene Parameter zu aktualisieren. Bezüglich dieses Aspektes solltest du das Skript noch überarbeiten.

Wenn du Datensätze in ihrer Position ändern möchtest, musst du dem Datensatz zuerst eine temporäre Position, z.B. 0 zuweisen, da es sonst zu Konflikten kommen könnte.
 
Zuletzt bearbeitet:
Zurück