PHP-Chat zeigt keine neuen Einträge an

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-Chat zeigt keine neuen Einträge an

    Ich hab vor kurzem mal probiert einen (fast) reinen PHP-Chat zu bauen.
    Bis auf ein Problem funktioniert auch alles wunderbar. Jetzt wo ich schon so weit mit dem Chat bin und auch weiß, dass es bei anderen funktioniert, die die selbe Methode verwenden wie ich, will ich das ganze auch zum Laufen bringen.

    Alles wird in zwei Frames aufgebaut, in einem werden die Einträge angezeigt, im anderen kann man Einträge einfügen.

    Zum Ausgabe-Frame:
    Damit die Einträge aus einer DB gelesen werden benutze ich eine Endlos-schleife. Damit der Prozessor dabei nicht ganz abkratzt hab ich am schluss noch ein "sleep(2)" eingefügt, damit sie zwischenzeitlich auch ausgegeben werden sollen steht davor noch ein "flush()".
    PHP-Code:
        while(1) {
            while(
    $eintraege mysql_fetch_assoc($getvar)) {
                echo 
    "<tr><td>".$eintraege['name']."</td><td>schrieb um ".$eintraege['zeit'].":</td><td>".$eintraege['eintrag']."</td></tr><br>\n";
                include 
    "replace.php";
                
    flush();
            }
        
    sleep(2);
        } 
    Die MySQL-Anweisungen sind in Variablen angegeben, funktionieren auch, hab ich schon getestet.
    Während in einem Frame die Endlos-Schleife läuft, kann man im anderen Einträge einfügen.
    Das funktioniert auch.
    Allerdings werden neue Einträge zwar in die DB eingetragen, nach dem Eintragen aber nicht dargestellt.

    Woran könnte das liegen?
    Danke schonmal im Vorraus
    Zuletzt geändert von Danlam156; 02.01.2008, 23:40.

  • #2
    Re: PHP-Chat zeigt keine neuen Einträge an

    Original geschrieben von Danlam156
    Allerdings werden neue Einträge zwar in die DB eingetragen, nach dem Eintragen aber nicht dargestellt.
    das wundert dich?
    in deiner todesschleife erfolgt keine weitere datenbankabfrage, woher sollen also die "neuen" datensätze kommen?

    Kommentar


    • #3
      Re: Re: PHP-Chat zeigt keine neuen Einträge an

      Original geschrieben von 3DMax
      in deiner todesschleife erfolgt keine weitere datenbankabfrage, woher sollen also die "neuen" datensätze kommen?
      Da ist doch ein mysql_fetch_assoc in einer while() Schleife?!

      Zum Problem des TS:

      Geb mal deinen Query - Ich vermute es liegt daran.

      Kommentar


      • #4
        Re: Re: Re: PHP-Chat zeigt keine neuen Einträge an

        Original geschrieben von lennart
        Da ist doch ein mysql_fetch_assoc in einer while() Schleife?!

        Zum Problem des TS:

        Geb mal deinen Query - Ich vermute es liegt daran.
        Ja, aber die Abfrage wurde nur einmal abgesetzt und nie wieder, daher hat man immer die gleiche Datensätze

        Kommentar


        • #5
          Re: Re: Re: Re: PHP-Chat zeigt keine neuen Einträge an

          Original geschrieben von asp2php
          Ja, aber die Abfrage wurde nur einmal abgesetzt und nie wieder, daher hat man immer die gleiche Datensätze
          Aber dieses eine Mal wird ja bei jedem Schleifendurchlauf von while(1) immer wieder ausgeführt. Steh ich jetzt aufm Schlauch?!

          Kommentar


          • #6
            Re: Re: Re: Re: Re: PHP-Chat zeigt keine neuen Einträge an

            Original geschrieben von lennart
            Aber dieses eine Mal wird ja bei jedem Schleifendurchlauf von while(1) immer wieder ausgeführt. Steh ich jetzt aufm Schlauch?!
            Ja, du stehst drauf ... was macht deiner Meinung nach mysql_fetch...?

            Kommentar


            • #7
              Oh man, noch nie Leute so im Kreis reden sehen
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Re: Re: Re: Re: Re: Re: PHP-Chat zeigt keine neuen Einträge an

                Original geschrieben von asp2php
                Ja, du stehst drauf ... was macht deiner Meinung nach mysql_fetch...?
                Ich gehe davon aus, dass er in der while(1) Schleife auch einen neuen Result Pointer generiert - So wie die Schleife dort jetzt steht, geht es natürlich nicht, weil $getvar immer gleich bleibt.

                Kommentar


                • #9
                  Re: Re: Re: Re: Re: Re: Re: PHP-Chat zeigt keine neuen Einträge an

                  OffTopic:
                  Original geschrieben von lennart
                  Ich gehe davon aus, dass er in der while(1) Schleife auch einen neuen Result Pointer generiert[...]
                  Irgendwie unlogisch davon auszugehen, dass der TO bei einem Problem natürlich aber den richtigen - anderen - Code benutzt als gepostet... findest nicht? Oo

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    Re: Re: Re: Re: Re: Re: Re: Re: PHP-Chat zeigt keine neuen Einträge an

                    Original geschrieben von ghostgambler
                    OffTopic:

                    Irgendwie unlogisch davon auszugehen, dass der TO bei einem Problem natürlich aber den richtigen - anderen - Code benutzt als gepostet... findest nicht? Oo
                    OffTopic:
                    Da ist was dran


                    Dann sollte sich ja jetzt zumindest das Problem des TO erledigt haben.

                    Kommentar


                    • #11
                      Das Problem hab ich gelöst.

                      Sieht jetz so aus
                      PHP-Code:
                          while(1) {

                          
                      $get "Hier die MYSQL-Anweisungen";

                          
                      $getvar mysql_query($get);

                              while(
                      $eintraege mysql_fetch_assoc($getvar)) {
                                  echo 
                      "<tr><td>".$eintraege['name']."</td><td>schrieb um ".$eintraege['zeit'].":</td><td>".$eintraege['eintrag']."</td></tr><br>\n";
                                  include 
                      "replace.php";
                                  
                      mysql_query("update `eintrag` set `read`='j' where `id`=".$eintraege['id']);
                                  
                      flush();
                              }
                          
                      sleep(5);
                          } 
                      Dachte, dass bei jedem Aufruf von mysql_fetch_assoc in der endlosschleife die MySQL-Anweisungen automatisch neu aufgerufen werden.
                      Von wem hätte das auch sonst kommen können

                      Kommentar

                      Lädt...
                      X