phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?q?l=F6schen=20eines=20alten=20Tupels?=

[php] löschen eines alten Tupels

Michael Koch php_(at)_phpcenter.de
Fri, 29 Jun 2001 11:33:57 +0200


> Bin Anfänger. Deshalb muss ich nochmal fragen. DELETE Abfrage ist ja
> auch eine delikate Sache wegen Datenverlust und so.
>
> Weiss nicht warum hier while-schleife nötig.
> Ich habe es erstmal so probiert.
>
> $tsheute = mktime(0,0,0,date("m"),date("d")-1,date("Y"));
>  $tsheute = date("Ymd",$tsheute)."000000";
>  $squery = "DELETE FROM tbl_test WHERE secondh_time <= '$tsheute'";
>  $result = mysql_query($squery);

Dast du denn das SQL-Statment schon mal direkt auf der Datenbank getestet, 
z.B. im phpMyAdmin. Gibt es da Fehlermeldungen ? oder liegt es am PHP-Code ? 
Gibt es beim parsen Fehlermeldungen ? 

> aber so funktioniert es auch nicht :
>
> $tsheute = mktime(0,0,0,date("m"),date("d")-1,date("Y"));
>  $tsheute = date("Ymd",$tsheute)."000000";
>  $squery = "SELECT * FROM tbl_test ";
>  $result = mysql_query($squery);
>  while($row = mysql_fetch_array($result)) {
>        if($row["secondh_time"] < $tsheute) {
>                $secondh_id = $row["secondh_id"];
>                mysql_query("DELETE FROM tbl_test WHERE
> secondh_id='$secondh_id'");
>        }
>  }

Das geht ziemlich auf die Performance, es dauert ewig bis ein paar (mehr) 
Datensätze gelöscht werden, es kann ggf. zu einem timeout im PHP-Script 
komme. Die Datenbank selbst kann viele schnell auf einmal löschen, deshal ist 
die obere Lösung mit einem SQL-Statement vorzuziehen.

> Hat jemand einen vielleicht sogar entscheidenden Tip ?

Debuggen.


Gruss,
Michael
-- 
Bremische Hafenvertretung e.V.                      tel: +49 (421) 3090148
IT-Abteilung                                        fax: +49 (421) 3090150
World Trade Center                             mail: mkoch_(at)_bremen-ports.de
Birkenstrasse 15                           www: http://www.bremen-ports.de
D-28201 Bremen








php::bar PHP Wiki   -   Listenarchive