Mailinglisten-Archive |
Hallo Norbert, Am 6. Mai 2004 um 14:48 schrieb Norbert Pfeiffer: > 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++; > } > ?> Ja, so in etwa habe ich es bisher gelöst (etwas weniger Absicherung und mit deutlich mehr Code, aber im Prinzip). Meine Frage war, ob man das über geschickte mysql-Queries vereinfachen könnte. Immerhin hängt da eine Menge Aktion dran: Array erstellen, in String umwandeln, eine SELECT-Abfrage, Arrayreihenfolge ändern und zwei UPDATE-Queries. Aber trotzdem vielen Dank, als (relativer) Anfänger kann ich auf jeden Fall was rausziehen. Die Ordnung des $ID-Arrays hätte ich z. B. nicht abgesichert . Sollte man das machen? Ich habe gerade nachgelesen, dass PHP eigentlich keinen Unterschied zwischen assoziativen und einfachen Arrays macht. Obiges Array würde von PHP doch dann so interpretiert: [0] => 2 [1] => 4 womit es kein Reihenfolgeproblem geben dürfte. Peter -- ---------------------------------------------------------------- Peter Linzenkirchner Lisardo Multimedia GmbH Herrenbachstraße 19, 86161 Augsburg Tel. ++49-821-150565, Fax ++49-821-150595 ----------------------------------------------------------------
php::bar PHP Wiki - Listenarchive