2 Stimmen

Verwendung einer Update-Abfrage zum Kopieren von Spaltendaten

Ich muss den Wert in einer Spalte mit dem Namen TEAM von einer Zeile in eine andere Zeile kopieren. Beide Zeilen müssen denselben Teamnamen haben. Dies ist meine Abfrage, die nicht funktioniert:

$query = "UPDATE profiles SET team = (SELECT team FROM profiles WHERE id = '$coach_id') WHERE id = '$player_id'";

Ich habe versucht, einfache Anführungszeichen zu entfernen, "FROM profiles" zu entfernen, den Wert zu table.value zu ändern, versucht, einen Alias newdata.clan zu geben, und habe sogar versucht, die Werte in Integers anstelle von Parametern zu ändern. Nichts funktioniert, und das ist, was ich bekomme:

Fehler: Sie haben einen Fehler in Ihrer SQL-Syntax; überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax in der Nähe von 'WHERE id = '') WHERE id = ''' in Zeile 3

1voto

FinalForm Punkte 5738
$query1 = "SELECT team FROM profiles WHERE id = '$coach_id'";

/* Den Wert der ersten Abfrage abrufen und einer Variablen wie $team_name zuweisen */

$query2 = "UPDATE profiles SET team = '$team_name' WHERE id = '$player_id'";

1voto

Kevin Punkte 600

Außerdem sollten Sie Ihre PHP-Variablen in geschweiften Klammern einschließen:

$query = "UPDATE profiles SET team = \"(SELECT team FROM profiles WHERE id = '{$coach_id}')\" WHERE id = '{$player_id}'";

1voto

Mattis Punkte 4888

Vom MySQL-Handbuch:

"Derzeit können Sie keine Tabelle aktualisieren und aus derselben Tabelle in einer Unterabfrage auswählen."

Quelle: http://dev.mysql.com/doc/refman/5.0/en/update.html

Verwenden Sie die Methode, die FinalForm geschrieben hat:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X