php mySQL Chat

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

  • php mySQL Chat

    Heyho,

    Ich bin derzeit beschäftigt, eine Chat-Applikation auf Basis von php und mySQL zu entwerfen.
    Alle 10 Sekunden hole Ich die aktuellen Chatnachrichten aus der mySQL Datenbank, was bereits super funktioniert.
    Hier der Code:

    PHP-Code:
    $msg_id 1;
    while (
    true) {
        
    $query "SELECT * FROM site_chat_messages WHERE msg_id >= ".$msg_id." ORDER BY msg_id ASC";
        
    $result mysql_query($query$dbconnection) or die(mysql_error());
        while (
    $row mysql_fetch_array($result)) {
            
    // Die aktuelle ID
            
    $msg_id $row['msg_id'];
            
    // Inkrementieren; An dieser Stelle wird beim nächsten Durchlauf der while Schleife weiter gemacht.
            
    $msg_id++;
                
            
    // Chat MSG ausgeben...
            
    echo $row['msg_txt']."<br>\n";    
        }
        
    sleep(10);


    Diese Ausgabe erfolgt in einem Frame. Das Script ist dauerhaft aktiv, was man an dem Ladebalken des Internet Explorers unten erkennen kann.

    In einem anderen Frame möchte Ich, dass der Benutzer Text eingeben kann. Das funktioniert an sich auch, aber das Problem ist, dass scheinbar nicht zwei Prozesse gleichzeitig laufen können. Solange wie die Ausgabe läuft, muss mein anderes Text-Sende-Script warten... Quasi unendlich lang warten, da die Ausgabe niemals beendeet wird.

    Jetzt steh Ich leider total aufm Schlauch und weis nicht, wie Ich am besten weitermachen soll. Per <meta> Tags einen 5 oder 10 Sekunden Refresh einbauen erachte Ich als eher nicht so gut. Ich denke dass mein Ansatz schon funktioniert, da z.B. der phpOpenChat oder der integrierte Chat beim Woltlab Forum meiner Meinung nach genauso funktioniert.

    Beim Absenden-Button haben diese noch ein bisschen Javascript mit dabei? Ist das eventuell die Rätsels-Lösung? Leider kenne Ich mich mit Javascript überhaupt nicht aus


    Für jede Hilfe und jeden Gedanken bin Ich echt dankbar!

    EDIT: Sockets darf / kann Ich leider nicht verwenden, da diese auf dem Server deaktiviert sind.
    Zuletzt geändert von Chrissi007; 27.12.2005, 19:34.
    Grüße, Chrissi
    Our Dreams are Wings

  • #2
    benutzt du Sessions?
    Wenn ja, session_write_close() vor der unendlichen Ausgabe aufrufen, dann sollte es gehen

    btw. offene Apache-Threads sind irgendwann für jeden Server tödlich, php ist eine denkbar schlecht Sprachwahl für einen Chat, aber das wirst du bei deinen Suchen sicher schon rausgefunden haben

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

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

    Kommentar


    • #3
      Herzlichen dank! Hat geholfen
      Grüße, Chrissi
      Our Dreams are Wings

      Kommentar

      Lädt...
      X