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.

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

    und dann:

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

    Code
    $statement = $conn->prepare("SELECT * FROM `{$project}` WHERE entrytype = ?");
    $statement->execute(array('module'));
    $status = "online";
    while ($row = $statement->fetch()) {
        // Hier prüfe ich einen Status und lasse ihn ausgeben
        if (offline) {
            $status = "offline";
        }
    }
  • 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
    $allStatus = array_column($result, 'status');
    $allStatusOnline = array_filter($allStatus, function ($value) { return $value === 'online'; });
    $allStatusOffline = array_diff( $allStatus, $allStatusOnline );
    
    if ( empty($allStatusOffline) ) {
        echo 'Alle sind online';
    } else {
        // hier separierte Ausgabe on- und offline
    }
  • 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.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!