Mailinglisten-Archive |
Hallo Ralf, Du koenntest die Tabelle in der Abfrage mit sich selbst verbinden (JOIN), um die Abfrage nicht zu langsam zu machen, solltest Du aber möglichst viele Kriterien angeben, um z.B. Termine an verschiedenen Tagen auszuschliessen, da die Anzahl der Datensaetze, die die Abfrage untersuchen muß, das Quadrat der urspruenglichen Anzahl ist. Ein Beispiel für die Abfrage (ungetestet) "SELECT termin1.start, termin1.dauer, termin2.start, termin2.dauer FROM termine as termin1 JOIN termine as termin2 WHERE (termin1.start+termin1.dauer)>termin2.start AND..." Außerdem muß man noch die Datensätze ausschließen, die entstehen, wenn ein Datensatz der ursprünglichen Tabelle mit sich selbst verknüpft wird (z.B. durch die Vergabe einer ID an die Datensätze, und die WHERE- Bedingung "termin1.id!=termin2.id") Zur Zeitmessung: versuch' es mal mit der Funktion "microtime". Beispiel: In der Seite am Anfang: $starttime=microtime(); und dann bei jeder Zeitmessung: echo timediff($starttime); function timediff($time1) { $time2=microtime(); $time1=substr($time1,0,strpos($time1," ")); $time2=substr($time2,0,strpos($time2," ")); $timediff=($time2-$time1); return " Rechenzeit:".$timediff."s "; } Gruesse Stephan
php::bar PHP Wiki - Listenarchive