Pause in Schleife einbauen

  • Moin, wie der Titel schon sagt möchte ich innerhalb einer Schleife gerne eine pause einlegen, sodass sie erst nach x Sekunden wieder von vorne startet. Wenn ich allerdings sleep ans Ende hänge lädt meine Seite danach unendlich lange. Gibt es da eine Möglichkeit?

  • PHP arbeitet synchron, arbeitet Schritt für Schritt ab. Wenn du sleep() reinhängst verlängert sich logischerweise die Scriptlaufzeit.


    Weshalb willst du eine Pause einlegen? Ich sehe keinen Grund weshalb das notwendig sein sollte.

  • Ich möchte die Schleife alle x Sekunden etwas ausgeben lassen. Wirkt sleep sich also auf das gesamte script und nicht nur die Schleife aus? Verstehst was ich meine?

  • Ja, wie gesagt, PHP ist synchron. Führt das ganze Script aus und schickt es dann an den Browser zurück. PHP ist für Dein Vorhaben nicht geeignet. Eine Lösung mit JavaScript und AJAX-Requests ist da eher sinnvoll.

  • Also könnte man mit jquery eine schleife machen, die alle x-sekunden etwas aus einer Datenbank ausgibt? Wäre cool wenn da jemand was wüsste

  • Ja


    Eine Lösung mit JavaScript und AJAX-Requests ist da eher sinnvoll.

    Ajax arbeitet mit Jquery , bzw ist Jquerý.


    Da kannst du deine Schleife ab arbeiten und notfalls eine Pause einbauen.

    Die frage ist aber was hast du da vor ?

    Da du mit Php was machst frage ich mich ob du da Daten aus der DB holst oder sonst wo weg?


    Du könntest auch vorher alle Daten holen die du brauchst und dann mit ein JS Code so ausgeben lassen wie du es haben möchtest.

    Deswegen erkläre uns erstmal was du da genau machen willst

  • Vereinfacht gesagt möchte ich Einträge aus einer Datenbank in zufälliger Reihenfolge mit jeweils x Sekunden pause zwischen drin ausgeben.
    Also ja, die Daten kommen aus einer Datenbank.


    Wie würdest du das anstellen, dass du dir vorher die Daten rausholst und dann in einer Schleife ausgibst?

  • Zitat

    Ajax arbeitet mit Jquery , bzw ist Jquerý.

    Das ist natürlich Unsinn. :)

    AJAX bedeutet Asynchronous JavaScript and XML und hat an sich nichts mit jQuery zu tun.

    jQuery ist eine JavaScript Bibliothek welche u.a. eine vereinfachte Methode für AJAX-Requests anbietet. Du kannst aber solche Requests auch ohne jQuery machen. Oder mittlerweile auch die Fetch-API verwenden.

  • Also, ich habe die Daten jetzt als Json, wie kann ich jetzt einzelne davon aufrufen? Und ist es möglich das eventuell sogar zufällig zu gestalten?

  • Zitat

    Also, ich habe die Daten jetzt als Json, wie kann ich jetzt einzelne davon aufrufen?

    Ich nehme an, das ist so zu verstehen, dass Du ein PHP-Skript hast, das die Daten im JSON-Format ausgibt? Dann wäre der nächste Schritt, die Daten für die zyklische Anzeige mit Javascript vom Server zu holen. Eine Möglichkeit, das zu tun, wäre, Ajax zu verwenden, siehe z. B. hier mit der fetch-API:

    https://wiki.selfhtml.org/wiki/JavaScript/Window/fetch

    Da Du aber schriebst, dass Du die Daten gleich vollständig bereit stellen kannst, kannst Du sie auch gleich auf der Seite ermitteln und an Javascript übergeben:

    PHP
    1. <?php
    2. // Die Daten ermitteln, sie stehen dann in einem, wahrscheinlich mehrdimensionalen Array zur Verfügung
    3. ?>
    4. <script>
    5. const data = <?php echo json_encode($dein_array); ?>;
    6. // jetzt stehen die Daten in der Variablen data zur Verfügung
    7. </script>