WeCore Geschrieben 26. September 2007 Geschrieben 26. September 2007 Hallo Community! Ich habe ein dickes PHP Problem an dem ich schon ne ganze weile festhänge. $abfrage = mysql_query("select postfach from msg_user where username = '$nicknameto'"); if(mysql_num_rows($abfrage) > 5) { $this->send("Der Posteingang von $nicknameto ist voll."); } else {[/PHP] Ich lasse mir dann die num_rows ausgeben aber diese sind 0 obwohl sie in meiner Tabelle NICHT 0 sind, weiß evtl. einer was da schief läuft? grüße Zitieren
Dukanos Geschrieben 26. September 2007 Geschrieben 26. September 2007 Nagel mich nicht drauf fest, aber sollte das nicht $abfrage = mysql_query("select postfach from msg_user where username = ".$nicknameto.""); heißen? Zitieren
HJST1979 Geschrieben 26. September 2007 Geschrieben 26. September 2007 Hast du in deiner DB- Klasse function num_rows() { return mysql_num_rows($this->Query_ID); } So mache ich das immer ! Oder vll solltest du deinen SELECT ausgeben und diesen dann über PHPMYADMIN absetzen und dann schauen was rauskommt ! Zitieren
WeCore Geschrieben 26. September 2007 Autor Geschrieben 26. September 2007 @Dukanos: Der Select stimmt eigentlich so wie ich ihn habe, hab ihn auch schon direkt in phpmyadmin getestet @HJST1979: Ich brauch dafür ne extra funktion? Zitieren
Cadpax Geschrieben 26. September 2007 Geschrieben 26. September 2007 Nein, du brauchst eig. keine neue Funktion dafür. Ich tippe mal auch auf den Fehler von Dukanos. SELECT postfach FROM msg_user WHERE username = '$nicknameto' [/PHP] So sieht der String aus wenn er zur Datenbank geht. $nicknameto ist ebenfalls eine Stringvariable, die in einem String geht. Die musst du also verketten. Lösung s. Oben. Mit freundlichen Grüßen, Cadpax Zitieren
geloescht_JesterDay Geschrieben 27. September 2007 Geschrieben 27. September 2007 $abfrage = mysql_query("select postfach from msg_user where username = '$nicknameto'"); if (!$abfrage) { $this->send("MySQL-Fehler: ". mysql_error()); } else { if(mysql_num_rows($abfrage) > 5) { $this->send("Der Posteingang von $nicknameto ist voll."); } else { ... } [/PHP] Ich würde das mal probieren. Dann weißt du, dass deine Abfrage wirklich funktioniert hat. Das mit der Variable im String ist so ok. Variablen in Strings mit " werden vom PHP durch deren Inhalt ersetzt. Bei Strings mit ' ist das nicht so. Also ist das Konstrukt oben vollkommen ok. Ach ja, du solltest mysql_query auf jeden Fall die Verbindungskennung mitgeben (als zweiten Parameter). Ja das muss man nicht, aber es ist sauberer finde ich. Du könntest ja zwei Verbindungen offen haben oder sonst was. Wenn du die Verbindung immer mitgibst brauchst du dich darum nicht zu kümmern. Es ist ja toll wenn php sowas alleine macht, aber das ist damit auch viel anfälliger und unkontrollierbarer, IMHO. Gib deiner Klasse eine Property db, in der die Verbindung steht: [php] class Bla { var $db; ... $this->db = mysql_connect('localhost', 'mysql_user', 'mysql_password'); ... $result = mysql_query("bla bla", $this->db); ... } Zitieren
WeCore Geschrieben 28. September 2007 Autor Geschrieben 28. September 2007 danke ich habs nun rausbekommen woran das lag $num_rows = mysql_num_rows($abfrage); ... ganz simpel *g* Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.