phpbar.de logo

Mailinglisten-Archive

[php] MySql Abfrage

[php] MySql Abfrage

Gloss Mathias php_(at)_phpcenter.de
Fri, 12 Jul 2002 17:29:22 +0200


Aloha,

> Von: 	Reinhold Riedersberger[SMTP:mailnews_(at)_riedersberger.de]
>
> Ich habe Probleme mit der folgenden Abfrage, bei der "Auslaufdatum"
> und "Benachrichtigungsdatum" MySql Datumsfelder sind.
>
Ah, und welche Probleme hast du genau?

> $res = mysql_db_query($dbDatabase, "select * from h_firmenstamm where
> strtotime(Auslaufdatum)-20*86400) < time() &&
> empty(Benachrichtigungsdatum)");
>
Das Query ist nicht sonderlich performant, da
für jede Zeile der Datenbank die Funktion
strtotime ausgeführt werden muß.

Davon abgesehen daß:

Note: This function has been deprecated since PHP 4.0.6. Do not use this
function. Use mysql_select_db()  and mysql_query() instead.

Außerdem find ich in der mysql-Doku keine funktion time() und strtotime und
vermutlich
wird die auch nciht mit einem Datumsfeld kompatibel sein.


Schau erst mal in
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Dat
e_and_time_functions



Sinnvoller wäre ein Query in der Art (wenn z.b. 1 Tag abgezogen werden soll

.... where (auslaufdatum) < DATE_ADD(CURDATE(), INTERVAL 1 DAY)

Mysql ist nämlich hinreichend intelligent, festzustellen, daß dann
der rechte Teil des Vergleiches konstant ist, und merkt sich das
bei den ganzen Vergleichen.

Grüße, Mathias


php::bar PHP Wiki   -   Listenarchive