Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

Nagel mich nicht drauf fest, aber sollte das nicht

$abfrage = mysql_query("select postfach from msg_user where username = ".$nicknameto.""); 

heißen?

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 !

@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?

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


$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);

...

}

danke ich habs nun rausbekommen woran das lag

$num_rows = mysql_num_rows($abfrage); 

...

ganz simpel *g*

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.