schleife prüfen

  • Hey!

    Ich mache aktuell folgendes:



    Ich würde gerne am Anfang prüfen, ob bei allen Ergebnissen der Status "online" ist.

    Wie mache ich das? Ich kann ja schlecht if ($status = "true") nehmen, es sind ja mehrere Ergebnisse.


    Vielen Dank schonmal.

  • Und was soll passieren, wenn der Status nicht überall "online" ist?

    Alles unter dem Strich ist eine Signatur!


    Die Deutsche Rechtschreibung ist Freeware, sprich, du darfst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen!


    Zitat von Dieter Nuhr: "Wenn man keine Ahnung hat, einfach mal Fresse halten". Wie recht er doch hat...

  • Nutze $result = $sth->fetchAll()

    und dann:

  • *smile* trickreich, aber ich würde es leicht lesbar vorziehen:

    Code
    1. $statement = $conn->prepare("SELECT * FROM `{$project}` WHERE entrytype = ?");
    2. $statement->execute(array('module'));
    3. $status = "online";
    4. while ($row = $statement->fetch()) {
    5. // Hier prüfe ich einen Status und lasse ihn ausgeben
    6. if (offline) {
    7. $status = "offline";
    8. }
    9. }
  • Die Lösung von cottton ist schon sehr gut. Ich würde nur nicht direkt vergleichen, sondern über array_diff() die offline Datensätze holen.

    Wenn die leer sind, weiß ich dass alle online sind, ansonsten habe ich alle die, die offline sind:

    PHP
    1. $allStatus = array_column($result, 'status');
    2. $allStatusOnline = array_filter($allStatus, function ($value) { return $value === 'online'; });
    3. $allStatusOffline = array_diff( $allStatus, $allStatusOnline );
    4. if ( empty($allStatusOffline) ) {
    5. echo 'Alle sind online';
    6. } else {
    7.     // hier separierte Ausgabe on- und offline
    8. }
  • Wäre ein

    Code
    1. select count(*) from `tabelle` where `status`='offline'

    nicht einfacher

    Alles unter dem Strich ist eine Signatur!


    Die Deutsche Rechtschreibung ist Freeware, sprich, du darfst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen!


    Zitat von Dieter Nuhr: "Wenn man keine Ahnung hat, einfach mal Fresse halten". Wie recht er doch hat...

  • So wie ich den Eingangsbeitrag verstanden habe, möchte er entweder Alle sind online ausgeben oder eben aufgelistet, wer on- und wer offline ist.

    Für ersteres würde eine Query reichen, aber nicht für letzteres, daher sollte er schon alle ziehen und in PHP entscheiden.

    Für zweiteres wird auch nur die status Spalte nicht ausreichen, aber das ist dem TE denke ich klar.