Mailinglisten-Archive |
Hi, > UPDATE table1, table1 AS table2 > SET table1.feld1 = table2.feld2 > WHERE table1.id = [id] > AND table2.id = [id] <lol> mehr als Syntaxfehler wird man aus solchen Konstrukten nicht erhalten, weil keine bekannte Datenbank die Manipulation mehrerer Tabellen in einem Query zulaesst, auch wenn es nur eine Kopie oder Referenz ist. Soweit zumindestens die 'graue Theorie' ... ;-) Wenn man etwas austauschen will, braucht man zunaechst einmal die Identifikation der Tauschpartner, z.B. zwei Reccord-ID's. Nun kann man einen Select absetzen, das Ergebnis tauschen und wieder Updaten. Das ergibt auch wieder 2 Querys. z.B.: <? $ID = array(2, 4); /* Reccord-ID's */ sort($ID); /* Ordnung absichern */ $ids = implode($ID, ','); $query = "SELECT KatBez FROM kategorien WHERE KatNr IN ($ids) ORDER BY KatNr"; $EG = $DB->get_data($query, '*'); /* Argument '*' erzeugt einspaltiges Array */ krsort($EG); /* vertauschen der Werte */ $i = 0; foreach($EG as $val) { $query = "UPDATE kategorien SET KatBez = '$val' WHERE KatNr = ".$ID[$i]; echo $query."\n"; $ok = $DB->get_access($query); $i++; } ?> m. b. G. Norbert _____________________ normal: 02686-987103 Notruf: 0177-2363368 --------------------- e.o.m.
php::bar PHP Wiki - Listenarchive