MYSQL Ausgabe klappt nicht so recht!

Boostergermany

Erfahrenes Mitglied
HE HO,
habe folgendes Problem:

Ich möchte meine Online-User anzeigen lassen, benutze dafür folgenden Code:

PHP:
$abfragen=mysql_query("select * from dieb_user_".$digit." WHERE `online` LIKE
 = '1'");
$row2 = mysql_fetch_array($abfragen);
 $online = $row2["user"];
$inhalt .= 'Folgende User sind Online: '.$online.'';

So hab Datenbank überprüft usw...das passt alles, die Seite gibt auch keinen Fehler wieder, aber anzeigen tut es mir die User trotzdem nicht :(

Es wird nur Angezeigt:
"Folgende User sind Online:" und dann is leer ^^

Wo könnte der Fehler sein
Danke euch schonmal für die hilfe !
 
Nimm das LIKE raus und es sollte gehen ;)

Arbeite beim entwickeln immer mit error_reporting(E_ALL) und mysql_error(). Erspart so manche graue Haare^^
 
okay, okay, so das mit der ausgabe klappt jetz...ABER was nicht klappt ist das alle user ausgegeben werden...wo is der fehler ? code is etz also:

PHP:
$abfragen=mysql_query("select * from dieb_user_".$digit." WHERE `online` ='1'");
$row2 = mysql_fetch_array($abfragen);
 $online = $row2["user"];
$inhalt .= 'Folgende User sind Online: '.$online.'';
 
Du bekommst mit dieser Abfrage für jeden User der Online ist eine Zeile zurück. Diese Zeilen musst du auch einzeln auswerten:
PHP:
$abfrage = mysql_query("SELECT `user` FROM `dieb_user_".$digit."` WHERE `online` = 1");
if(!mysql_num_rows($abfrage))
{
    $inhalt .= 'Keine User sind online.';
}
else
{
    $online = '';
    while($row2 = mysql_fetch_assoc($abfrage))
    {
        $online .= (!empty($online) ? ', ' : '') . $row2['user'];
    }

    $inhalt .= 'Folgende User sind online: ' . $online;
}
Was dort geschiet kannst du mit Hilfe der PHP-Doc rausfinden, falls du nicht alle Befehle kennst.
 
Zuletzt bearbeitet:
Du bekommst mit dieser Abfrage für jeden User der Online ist eine Zeile zurück. Diese Zeilen musst du auch einzeln auswerten:
PHP:
$abfrage = mysql_query("SELECT `user` FROM `dieb_user_".$digit."` WHERE `online` = 1");
if(mysql_num_rows($abfrage))
{
    $inhalt .= 'Keine User sind online.';
}
else
{
    while($row2 = mysql_fetch_assoc($abfrage))
    {
        $online .= (!empty($online) ? ', ' : '') . $row2['user'];
    }

    $inhalt .= 'Folgende User sind online: ' . $online;
}
Was dort geschiet kannst du mit Hilfe der PHP-Doc rausfinden, falls du nicht alle Befehle kennst.

Kleine Korrekturen. Es muss
PHP:
if(!mysql_num_rows($abfrage))
heißen, da du ja prüfen willst, ob es 0 sind.

Beim weiteren sollte $online initialisiert werden bevor du etwas dranhängst, denn sonst gibt es Notice Errors und evtl. noch größere Fehler, falls $online z. B. bereits als Objekt initialisiert wurde.
 
Ich wusste doch, dass mich etwas beim Korrekturlesen gestört hat, ich hab es nur nicht gefunden :-P
Danke für den Hinweis, hab es angepasst.
 
Und dann kürzt du das zusammensetzen des Strings noch mit einem Array in eine mMn sinnvolle Variante (sinnvoll weil einfacher zu8 handhaben als die ewige prüferei ob schon was da ist oder nicht)

PHP:
    while($row2 = mysql_fetch_assoc($abfrage))  {
        $online[] = $row2['user'];
    }
    $inhalt .= 'Folgende User sind online: ' . implode(', ', $online);
 
Zurück