Wert temporär speichern?

D-LuX

Erfahrenes Mitglied
Hallo ;)

also folgendes:

Ich habe 2 Datensätze in 2 Variablen gespeichert.
Nun möchte ich Datensatz 1 in Datensatz 2 in der Datenbank speichern und umgekehrt!

Datensatz 1 --> Datensatz 2
Datensatz 2 --> Datensatz 1

Gedacht habe ich mir folgendes:
Datensatz 1 --> $temp
Datensatz 2 --> Datensatz 1
$temp --> Datensatz 2

Nur leider krieg ich es nicht umgesetzt.
 
Sorry, war noch nicht fertig ;)

Also mein Problem ist der Zwischenschritt ($temp)!
Ich kann zwar den Datensatz 2 in Datensatz 1 schreiben, überschreibe aber dann Datensatz 1, wenn ich diesen vorher nicht in $temp speicher.

Also genau genommen möchte ich zwei position_id`s miteinander tauschen, bzw. 2 Einträge in der Datenbank.

Ich hab mir gedacht, dass ich in Datensatz 1 zuerst die position_id 9999 schreibe um sie im nächsten Schritt dann mit Datensatz 2 also position_id 2 zu überschreiben.

Datensatz 1: position_id=1
Datensatz 2: position_id=2

Problem dabei ist nur, dass ich dann Datensatz 1 nicht in Datensatz 2 schreiben kann, weil ich diesen ja mit 9999 ersetzt habe.
Also muss ich Datensatz 1 mit der ID 1 nochmal speichern und da liegt mein Problem.
Ist wahrscheinlich simpel, aber ich komm nicht dahinter. Verständlich? ;)
 
Zuletzt bearbeitet:
Prinzipiell ist mir schon klar, was du erreichen willst.
Könntest du mal bitte den Codeteil posten, mit dem du das machst?
Die Datensätze liegen dir als Variable vom Typ array vor oder wie?

MfG :)
 
Achso, ja tun sie.

Ich habe 2 Werte vom Typ Array.

PHP:
$select = "SELECT * FROM Tabelle WHERE position_id=1";
$result = mysql_query($select );
$max = mysql_num_rows($result );
$tauschen = mysql_fetch_row($result );
$wert1 = $tauschen[3];

$select1 = "SELECT * FROM Tabelle  WHERE position_id=2";
$result 1= mysql_query($select1 );
$max1 = mysql_num_rows($result1 );
$tauschen1 = mysql_fetch_row($result1 );
$wert2 = "$tauschen1[3]";

Ich muss also wert2 in wert1 schreiben!
Ich kann wert1 dann nicht mehr in wert2 schreiben, weil dieser bereits mit wert2 überschrieben wurde ;)
Also wollte ich den Zwischenschritt machen und wert1 in $temp speichern.

Reicht das dann wenn ich einfach hingehe und sage: $wert1 = $temp;
Ich muss ja weiterhin dann mit $wert1 und $temp arbeiten. Ist es möglich den selektierten wert also $tauschen1[3] in zwei variablen zu speichern?
Einmal in $wert und einmal in $temp?

Verwirrt? ;)
 
Zuletzt bearbeitet:
Was ich jetzt noch garnicht verstanden hab ist, ob du nur die Inhalte des Datensatzes tauschen willst, sprich der Eintrag mit der ID 1 nachher unter der ID 2 erreichbar sein soll, oder ob du die ID mit vertauschen willst (wo ich den Sinn dahinter nicht verstehen würde;) )

mit $wert1 = $tauschen[3]; wird nur der Teil zwischengespeichert, der in $tauschen[3] steht, was auch immer das ist. Wenn du das ganze Array zwischenspeichern willst darfst du keinen Index angeben! $wert1 = $tauschen;
 
Also in $tauschen[3] steht die position_id!

$wert1 = position_id 1
$wert2 = position_id 2

Ich habe Einträge und möchte Sie je nach "Klick" entweder hoch oder runter setzen. Dafür muss ich die position_id ändern, weil ich danach sortiere. Also ändert sich nur die position_id.
Es kann auch sein, dass ich einen mega Denkfehler praktiziere und alles viel einfacher von statten gehen würde ;)
 
Zuletzt bearbeitet:
Vergiss aber bitte nicht, dass du die Änderungen auch in die Datenbank schreibst..

Sonst nützt dir das ganze hin und her geschiebe nähmlich nichts..

Dann würde ich in der Datenbank ein Feld namens ID machen, und ein zusätzliches Feld mit der Positionsnummer.

Dann musst du die ID's nicht vertauschen, was bei einem "autoincrement" sowieso nicht möglich ist.
 
Vergiss aber bitte nicht, dass du die Änderungen auch in die Datenbank schreibst..

Sonst nützt dir das ganze hin und her geschiebe nähmlich nichts..

Dann würde ich in der Datenbank ein Feld namens ID machen, und ein zusätzliches Feld mit der Positionsnummer.

Dann musst du die ID's nicht vertauschen, was bei einem "autoincrement" sowieso nicht möglich ist.
Danke für den Tipp, das hab ich bereits getan ;) Vorkehrungen sind also getroffen ;)
Ich hab also eine autoincrement id und eine position_id
 
Zurück