Archive for June, 2006

28
Jun

SELECT FOUND_ROWS();

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 :)

26
Jun

Froscon 2006 Review

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?

22
Jun

Yahoo! UI Library

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!

20
Jun

TestGen4Web

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.

20
Jun

How to redirect a web page, the smart way

Ein korrekter HTTP Redirect in PHP, Java, ASP, ASP.NET und Perl findet sich unter How to redirect a web page, the smart way.

19
Jun

HowTo: The Website Development Process

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.

18
Jun

Uptime unter Windows

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 :)

11
Jun

Decoding CAPTCHA image using PHP

Der Titel Decoding CAPTCHA image using PHP sagt schon alles.