phpbar.de logo

Mailinglisten-Archive

[php] OT, mysql-Frage

[php] OT, mysql-Frage

Peter Linzenkirchner peter at linzenkirchner.de
Don Mai 6 17:24:08 CEST 2004


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