logo

Programmieren oder so ähnlich


SQL Select liefert immer true zurück, warum?

Posted in MySQL, PHP, Web Development von admin am 18. Okt. 2007

Nach langem wieder einmal hab ich eben eine kopfzerbrechliche Auseinandersetzung mit meinen Kollegen PHP und MySQL erlebt.

Für die Homepage www.clipcrawl.com musste ein Tagcloud her. Anstatt ein fix fertiges Script zu benutzen, dachte ich mir “Schreib doch selber schnell ( :P ) ein Tagcloud-Script”. Also fing ich auch damit an. Und man kommt hier um eine Datenbanklösung nicht herum. Ich benutzte MySQL und irgendwo musste ich Selects mit der Funktion mysql_query() ausführen.
Das Ergebnis, welches ich vom SQL-Select erhalte beinhaltet einen Boolean-Wert der mir mit dem Rückgabewert True sagt, dass der Befehl erfolgreich war und mit False nicht.

Also führte folgenden Select aus “SELECT tag, count FROM tag_tabelle WHERE tag = ‘Games’ “.

Die Tabelle tag_tabelle erhält die Tags, von denen welche im Tagcloud ausgegeben werden. Die Spalte tag hat den Typ Varchar(150). Ein Datensatz mit dem Wert ‘Games’ in der Spalte tag existierte aber nicht. Warum denn nicht? Die Tabelle war leer und wurde frisch erstellt. OK. Dieser Select würde mir (rein theoretisch) einen Booleanwert mit False als Wert zurückliefern, da ja der gesuchte Datensatz in der Tabelle nicht existiert.

Aber nein nein! Programmieren würde sich mein Hobby & Beruf nicht nennen, wenn etwas nicht läuft wie erwartet. Auch hier lief es nicht wie erwartet. Als Rückgabewert erhielt ich True !!! “Hää?” Dachte ich. “Unmöglich! Geht doch nicht!”. Warum soll der Select erfolgreich gewesen sein?

Mit mysql_fetch_row() versuchte ich (weil es ja anscheinend ein Resultat gab) einen Datensatz zu packen. Dieser war aber leer. *???*


Ich dachte ich werde verrückt. Da ist doch nichts drin in dieser Tabelle und immer erhielt ich beim Select einen Erfolg gemolden.

Ach ja, PHPmyAdmin habe ich nicht benutzt, da ich darauf keinen Zugriff hatte. Nur FTP-Zugriff hatte ich. Ich arbeitete nur mit PHP-Scripts.

Nach langen Blockaden in meinem Hirn entschied ich mich das ganze schnell auf meinem XAMPP-Server lokal nachzuspielen. Gut. Server gestartet und per phpMyAdmin einen Datensatz anhand der VARCHAR-Spalte tag gesucht (natürlich mit SQL Befehl). Das Resultat war wirklich nicht rot im Hintergrund. Kein Fehler wurde gemolden. Aber eine Meldung stand da “MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen).” -.-

Also: Wenn man SQL-Befehle mit z.B. mysql_query ausführt und dabei bei Select-Abfragen im WHERE-Zusatz eine VARCHAR/CHAR-Spalte prüft, dann sich bitte nicht auf den boolean-Rückgabewert verlassen. Gibt es Fehler, so werden diese auch entsprechend mit False gemeldet.

Oder in Kurzfassung: Leere Ergebnisse können auch True sein.

Obwohl ich wirklich am verzweifeln war, fand ich es wieder eine tolle Erfahrung und man sieht hier, dass der Computer nur Befehle ausführt und nicht dumm sein kann.

Login mit PHP, Sessions und MySQL

Posted in CMS, MySQL, PHP, Web Development von admin am 14. Okt. 2007

Schon lange ist es her, dass ich mit PHP ein Login-System programmiert habe. Dieses habe ich nur aus reiner Experimentierfreude gecodet, so dass es mir nur so halb im Gedächtnis erhalten blieb.

Auf der empfehlenswerten Internetseite php-resource.de habe ich ein cooles Tutorial entdeckt, welches ich euch nicht vorenthalten will, falls ihr auf dem Weg seid ein Login-System mit PHP und MySQL zu programmieren.

Von mir erhält der Autor (mrhappiness) hiermit einen virtuellen Applaus :) .
Also, hier der Link zum Tutorial “Login mit Hilfe von PHP und mySQL”.

Have fun ;) .


Blogverzeichnis - Blog Verzeichnis bloggerei.de blog-o-rama.deSuchmaschinenoptimierung mit Ranking-Hits supported by www.rankingcloud.de Blog Top Liste - by TopBlogs.de Free Games

Add to Technorati Favorites Sofortkredit ohne Schufa