• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage PHP Code funktioniert nicht.

AiRx

Neues Mitglied
Guten Abend/Morgen (wie man es nimmt)

ich komme bei meinem Code nicht weiter:

Code:
<?php
$query = mysql_query('SELECT online FROM status');
$r = mysql_fetch_object($query);
    if($row['online'] >= "1"){ ?>
    <span style="color:#008000;">Online</span>
<?php } else { ?>
    <span style="color:#B22222;">Offline</span>
<?php } ?>

In der DB habe ich eine Tabelle welche "status" heißt in dieser ist eine Spalte, welche "online" heißt, dort kann man zwischen "0" und "1" wählen.

Derzeit ist in der Tabelle die 1 eingestellt, aber dennoch wird der Offline-text angezeigt :/

Ich bitte um Hilfe.

Danke im voraus :D
 
Werbung:
Zuallererst das Wichtigste! Die Erweiterung mysql wurde seit PHP7 aus der Sprache entfernt und solle nicht mehr verwendet werden.

Die Variable $row ist nicht definiert, und somit kann auch nicht auf deren Array-Element['online'] zugegriffen werden!

Ungetestet!
PHP:
<?php
    $query = mysql_query('SELECT online FROM status');
    $row = mysql_fetch_object($query);
    if($row['online'] >= "1"){ ?>
        <span style="color:#008000;">Online</span>
    <?php } else { ?>
        <span style="color:#B22222;">Offline</span>
    <?php } ?>
 
Der Fehler wäre aufgefallen, wenn man sich daran gehalten hätte:

Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Werbung:
Warum wird denn
  1. darauf hingewiesen, dass mysql_* vermieden werden sollte und dann ein Beispiel doch damit gepostet?
  2. ein Objekt des Datensatzes geholt, das wie ein Array behandelt wird?

Zu1: steig um auf PDO oder MySQLi. Ich lege Dir PDO und PreparedStatements ans Herz.

Zu2:
PHP:
$row->online
 
Zurück
Oben