Moin!
Nichtsdestotrotz (tolles Wort, oder *g*) solltest Du genau darauf achten, dass Deine Scripte nach einer Abfrage auch das Resultset wieder frei geben
mysql_free_result() http://de2.php.net/manual/de/function.mysql-free-result.php, da es sonst bis zur Freigabe der Connection (spätestens am Scriptende) auf dem Datanbankseerver bleibt, und das meistens nutzlos.
Nö, das dürfte absolut unproblematisch sein.
PHP schiebt die Datenbank-Ergebnisse mit dem Befehl mysql_query() komplett in einen PHP-eigenen Zwischenspeicher und liefert von dort aus dann die Datensätze aus. Die Datenbank ist schon direkt nach mysql_query() mit der Abfrage fertig und speichert außer der noch bestehenden Verbindung nichts mehr.
Wenn PHP mit der Größe des Datensatzen nicht klarkommt, hilft kein mysql_free_result(), weil das ja erst _nach_ der kompletten Ausgabe aufgerufen werden dürfte (vorher würde es die abgefragten Datensätze löschen). Wenn zu viele Datensätze ausgelesen werden müssen, als PHP Speicher kriegen kann, dann würde sich mysql_unbuffered_query() anbieten. Das dürfte aber wirklich nur interessant sein, wenn man als Ergebnis mehrere Gigabyte an Daten erwartet. Und solche Monsterabfragen sind gewöhnlicherweise nicht zu erwarten - jedenfalls definitiv nicht bei 40 Datensätzen, die man per DISTINCT erhält.
Ich muss die SELECT Abfrage mit "LIMIT 16" ergänzen, so kann ich den Error (404) umgehen. In diesem Fall werden aber nur 16 Datensätze angezeigt, was nicht der effektiven Anzahl entspricht (Etwa 40+).
Benutze mal einen anderen Browser, als nur den IE. Der zeigt nämlich leider eine selbstgenerierte Fehlermeldung an, und nicht das, was der Server tatsächlich gesendet hat. Ob es sich tatsächlich um einen 404-Fehler handelt, oder ob sich das der IE nur ausgedacht hat, ist noch zu klären.
- Sven Rautenberg
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)