Als mir jemand von SQL_CALC_FOUND_ROWS erzählte - ich glaube es war Darren -, dachte ich, ein SELECT COUNT(*) wäre kein Unterschied. Heute habe ich einen Verwendungszweck gefunden.
Ich arbeite zur Zeit an einer möglichst generischen Grundlage - ich möchte es nicht Framework nennen - für weitere Entwicklungen. In den ORM Objekten, die den Zugriff auf Tabellen ermöglichen, erzeuge ich dynamisch einen Join, um verschachtelte Objekte mit möglichst wenig “Kosten” zu erzeugen. Für die Spaltenbezeichnung benötige ich Aliase.
Die Funktion, die eine ganze Liste dieser Objekte erzeugt, kann natürlich gefiltert werden. Sobald ich nach einem Alias filtere, kann ich WHERE nicht verwenden und muss das kostenintensivere HAVING verwenden.
Mit SQL_CALC_FOUND_ROWS veranlasse ich mySQL dazu, die Gesamtanzahl der Treffer - ohne LIMIT - zu ermitteln. Die Anzahl der Treffer kann im Anschluss mit SELECT FOUND_ROWS(); ausgelesen werden.
mysql> SELECT SQL_CALC_FOUND_ROWS col1, col2, col3 AS foo FROM table HAVING foo = 'bar';
+------+------+-----+
| col1 | col2 | foo |
+------+------+-----+
| ... | ... | ... |
mysql> SELECT FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
| 28123 |
+--------------+
1 row in set (0.00 sec)
Wesentlich einfacher, als dynamisch Queries mit Aliasen und Joins umzuschreiben.
Danke für den Tipp :)
Die Froscon war wirklich einen Besuch wert. Vielen Dank an die Organisatoren.
Die Konferenz war wirklich gut organisiert. Überall auf dem Gelände hatte man einen sehr schnellen W-Lan Zugang (Eclipse mit 130Mb in 3 Minuten), die Uni ist wirklich vorbildlich und sogar das Spiel am Samstag wurde im großen Hörsaal übertragen.
Ich war konsequent in sovielen Vorträgen wie möglich. Hier ein kurzer Auszug der Vorträge, die mir besonders in Erinnerung bleiben:
- Webservices Toolkit für PHP5
Ein sehr interessantes Projekt, das mit Hilfe der PHP 5 Reflection API z.B. einen WSDL Generator ermöglicht. Infos finden sich bei der PHPUGDO.
- MySQL Cluster (Geert Vanderkelen)
Sehr insteressanter Vortrag über die neuen Möglichkeiten eines mySQL Clusters.
- Pivot Tables in mySQL 5 (Guiseppe Maxia)
Der Vortrag war unterhaltsam und sehr gut nachvollziehbar. Guiseppe Maxia zeigt eine Möglichkeit, wie man mit mySQL Procedures und Functions automatisiert den SQL Query für eine Pivot Tabelle erzeugt. Wie oft hätte ich dieses Skript schon gebrauchen können! Danke :)
- PHP best practice (Tobias Schlitt und Kore Nordmann)
Alle Infos aus diesem Vortrag habe ich schon mindestens 100 mal gehört/gelesen. Für mich war leider nichts Neues dabei. Die Reaktionen und Fragen aus dem Publikum zeigen aber, wie wichtig solche Vorträge sind. :)
Leider habe ich es nicht geschafft, mir die PostgreSQL Vorträge anzusehen. Aber vielleicht kann ich die PostgreSQL Usergroup zu einem Vortrag in unserer PHPUGFFM einladen?
Wow! Endlich mal eine Bibliothek,
- die auf Anhieb funktioniert,
- gut dokumentiert ist und
- Spaß macht :).
Die Yahoo! UI Library ist wirklich eine “schmucke” Sache. Das Autocomplete Widget kann seine Daten aus einem JS Array, XML oder JSON holen. Die Drag’n'Drop Teile sind interessant und viele Elemente (z.B. das Dropdownmenü) kann man auf existierendes Markup anwenden. Und das wichtigste: YUI ist schnell. Viel schneller als z.B. das Dojo Toolkit. Ausprobieren!
TestGen4Web ist eine der genialen Firefox Erweiterung für Web-Entwickler. TestGen4Web zeichnet die Bewegungen und Eingaben auf der Webseite auf und speichert diese für die spätere Verwendung. Das ewige “Seite aufrufen, Formular ausfüllen, abschicken, …” Prozedere entfällt.
Ein korrekter HTTP Redirect in PHP, Java, ASP, ASP.NET und Perl findet sich unter How to redirect a web page, the smart way.
Für einen Anfänger - und selbst für einige Fortgeschrittene Entwickler - stellt sich immer wieder die gleiche Frage. Wie fange ich an? Wie schaffe ich es, daß ich eine hübsche (Art), benutzbare (Design) und funktionierende (Code) Seite erhalte? Diese Frage wird auf der folgenden Seite sehr gut durchleuchtet. Der Autor geht dabei auf den gesamten Website Development Process ein.
Leider gibt es unter Windows das Shellcommando uptime nicht. Folgende Befehle liefern aber verwertbare Infos:
- net statistics server
- systeminfos
Einzugeben natürlich unter Start->Ausführen->cmd
Eine extrem wichtige Windows Erweiterung sind meiner Meinung nach die GNU Tools for Win32. Damit geht dann endlich ein ls oder grep unter Windows :)