PHP Abfrage alle 10 Sekunden

  • Hallo zusammen,
    Ich würde gerne Folgende Abfrage:


    Alle 5 Sekunden Aktualisieren, zurzeit mache ich dies indem ich die Seite neu lade:

    Nun würde ich dies gerne umgehen

    Ready when you are :bravo2:


  • So Funktioniert die Abfrage jedoch wird die Seite index.php nur in der Seite test1.php geladen und nicht als "eigene Seite" im selben fenster

    Ready when you are :bravo2:

  • So Funktioniert die Abfrage jedoch wird die Seite index.php nur in der Seite test1.php geladen und nicht als "eigene Seite" im selben fenster

    Wie meinst du das? Ich habe dein Beispiel mal nachgebaut und es funktioniert super.
    Jedoch benutze ich echo und nicht print und Header in der PHP-Datei "test.php".

    index.php

    test.php:

    PHP
    <?php
      echo rand(1,9999);
    ?>

    Ich glaube du solltest dir erst nochmal die GRUNDLAGEN von HTML angucken, bevor du hier weitermachst.

    Edited once, last by rpi-noob (April 15, 2016 at 10:00 AM).

  • Ja eigentlich soll ja wenn die Datenbank einen Artikel mit "0" in der spalte neu enthält, die Seite: Header('Location: index.php?uid=' . $b . ''); Aufgerufen werden.

    Normalerweise sollte ja mit diesem Befehl eine Neue Seite im selben Tab erscheinen.
    Mir wird jedoch die Seite als "include" in index.php geöffnet
    und wie in index.php definiert ist wird die Seite nur 1 Sekunde angezeigt:
    $('#content').fadeOut('slow').load('test.php').fadeIn("slow");}, 1000);

    Ready when you are :bravo2:

    Edited once, last by schnibli (April 15, 2016 at 1:29 PM).

  • Also folgende Abfrage soll jede Sekunde Ausgeführt werden:


    Nun hier siest du das wenn ein Datensatz die bestimmung erreicht, soll zur seite:

    Code
    Header('Location: index.php?uid=' . $b . '');


    gewechselt werden.x

    Ready when you are :bravo2:

    Edited once, last by schnibli (April 15, 2016 at 2:50 PM).

  • Und was für ein Sinn soll das auslesen der Datenbank alle 10 Sekunden haben? :-/ Ohne Hintergrundinformationen kann man dir noch immer nicht wirklich gescheit helfen... Ich fragte nicht nach deinem Code sondern nach deinem Ziel - was willst du machen und erreichen?


  • Ja eigentlich soll ja wenn die Datenbank einen Artikel mit "0" in der spalte neu enthält, die Seite: Header('Location: index.php?uid=' . $b . ''); Aufgerufen werden.

    Normalerweise sollte ja mit diesem Befehl eine Neue Seite im selben Tab erscheinen.
    Mir wird jedoch die Seite als "include" in index.php geöffnet
    und wie in index.php definiert ist wird die Seite nur 1 Sekunde angezeigt:
    $('#content').fadeOut('slow').load('test.php').fadeIn("slow");}, 1000);

    Du kannst mit Header (PHP) keinen neuen TAB erzeugen. Das geht nur mit JavaScript.

    Guck dir besser erst alle HTML-Grundlagen an, dann andere Sachen.

  • meigrafd: das solltest du doch wissen - RFID-Leser, der seine Werte in die DB schreibt, und ueber Pollen wird dann ermittelt, ob etwas neues da ist.

  • ...ach, immer noch die Geschichte... :rolleyes:


    Also zunächst mal ist "SELECT *" schlecht - sowas sollte man vermeiden da das extrem ausbremst. Du weißt welche Spalten du willst also wähl sie da auch direkt aus.
    Bei PHP ist es zwar nicht nötig aber tu dir selbst ein Gefallen wenn du Einrückungen verwendest - das steigert die Lesbarkeit deines Codes enorm.
    Die while Bedingung ist eigentlich Quatsch, die wiederholt sich eigentlich eh nur solange wie ($row = $erg->fetch_assoc()).
    Wieso gehst du die komplette Tabelle durch, beachtest dann aber anscheint nur den letzten Eintrag? $a usw ist kein Array also wird dessen Wert jedes mal überschrieben und nach Ende der while steht der letzte Eintrag drin..... Wieso erweiterst du dein SQL_Statement nicht einfach mit " WHERE 1 ORDER BY id DESC LIMIT 0,1" ?

    An dieser Stelle sollte ich aber vermutlich auch erwähnen das man lieber mysqli nutzen sollte - zukunftssicherer und performanter.


    Davon abgesehen brauchst du in der vom AJAX Beispiel verwendeten data.php ja nur einen Wert zurück geben auf das index.php reagiert: Sobald ein "neu" Eintrag vorhanden ist gibst du die "uid" des Eintrags zurück und veranlasst die index.php zum Beispiel ein Button anzuzeigen der ansonsten versteckt ist - so würde ich das zumindest machen.
    Und über mein AJAX Beispiel wird auch gezeigt wie du mithilfe von Javascript fortlaufend immer wieder einen Aufruf durchführen kannst.


    Wenn du etwas nicht verstehst dann frag bitte bezielt - mir is das zu mühsam ALLES zu erklären.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!