Brauch mal Hilfe beim umcoden von Chat...(DB Abfrage Funktion)

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

  • Brauch mal Hilfe beim umcoden von Chat...(DB Abfrage Funktion)

    Hallo,

    folgendes Problem:

    Ich bin dabei den mazenphp chat umzuproggen, bisher klappt auch alles ganz toll, jedoch habe ich nun das erste Problem. Ich möchte, wenn jemand den Chat betritt gern anzeigen, wieviele Chatter bereits im Raum sind. Soweit, so gut....ich habe nun also eine Mysql Abfrage eingebaut, die wie folgt lautet

    PHP-Code:
    $this -> db -> query("SELECT nick, room FROM chatusers WHERE room = '$data8[room]'" AND active '1');
    while ( 
    $test6 $this -> db -> fetch()) {


    $this -> listusers "$test6[nick]";



    diese befindet sich in der Funktion ReloadConfig();

    welche kurz bevor der Chat die texte ausgibt aufgerufen wird...

    das Problem an der Sache ist folgendes, da der Chat ja über sockets läuft wird das ganze erst später im Script hinzugefügt und zwar so:

    PHP-Code:
    @socket_write ($key$this -> listusers); 

    Nun ja, ich bekomme nun zwar Chatter angezeigt, die im Raum sind, jedoch nur immer den jeweils letzten der DB und nicht alle Werte...ich weiss das man des ganze eigentlich mit while regelt, aber so wie ich es versucht habe geht's net und nun bin ich echt am verzeifeln, weiss jemand von euch Rat? Wie könnte ich das ganze auslesen, vielleicht ohne while? Oder wie kann ich $this -> listusers so definieren, des wirklich ALLE datensätze darin gespeichert sind?! Wäre für hilfe sehr dankbar!

    Gruss,
    Etienne

  • #2
    $this -> listusers muß ein array sein: $this -> listusers[]

    momentan überschreibst du dir den inhalt mit jedem schleifendurchlauf

    Kommentar


    • #3
      Hallo norbert,

      erst einmal vielen Dank für die Antwort, habe es mit dem array probiert und es klappt prima, nochmal vielen dank
      Zuletzt geändert von Etienne; 08.01.2003, 23:02.

      Kommentar


      • #4
        Zu früh gefreut, es klappt doch net

        Ich habe jetzt drinstehen:

        PHP-Code:
        $this -> db -> query("SELECT nick, room FROM chatusers WHERE room = '$data8[room]'");
        while ( 
        $test6 $this -> db -> fetch()) {


         
        $this -> listusers[] = "$test6[nick]";


        so, ich kann auch über [0] [1] etc. mir die namen anzeigen lassen,aber wie lasse ich alle zusammen anzeigen? über nen foreach...?! Habe es hiermit versucht:

        foreach($this -> listusers as $test56)

        geht net Weiss nimmer weiter
        Zuletzt geändert von Etienne; 08.01.2003, 23:15.

        Kommentar


        • #5
          vielleicht ist es nur ein tippfehler, aber vielleicht auch die lösung.

          PHP-Code:
          $this -> db -> query("SELECT nick, room FROM chatusers WHERE room = '".$data8[room]."' AND active = '1'"); 
          das letzte '..AND .....' stand nicht wirklich im query-string.
          auch würde ich ein array nicht direkt in den string schreiben.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Hallo Abraxax,

            nein daran liegt es wohl leider net, habe es hier im code vorerst ohne dem active = '1' stehen... das Problem ist, das ganze wird in ein Array geschrieben, ich bekomme zum Beispiel, wenn ich:

            PHP-Code:
            $this -> anzahl count($this -> listusers); 
            mache, in $this -> anzahl die richtige Anzahl raus, doch wenn ich nun bei Socket angebe:

            PHP-Code:
            @socket_write ($key,  $this -> test); 

            Bekomme ich trotzdem wieder nur einen Namen

            nochmal die foreach schleife

            PHP-Code:

            foreach ( $this -> listusers as $this -> test
            Weiss nimmer weiter

            Kommentar


            • #7
              mhm, da kann ich dir wohl auch nicht helfen, da ich den chat nicht kenne.

              aber noch ne info am rande..... schaue dir mal meine signatur an ....
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                *gg* Hat sich soeben erledigt,ich habe die foreach anweisung einfach so gemacht:

                foreach ( $this -> listusers as $this -> test) {
                @socket_write ($key, $this -> test);
                }

                und tada,schon geht es Trotzdem vielen Dank an dich *smile* Die Signatur ist übrigens amüsant und hoffentlich nicht immer zutreffend, denn ich mag es ganz und gar net wenn etwas net geht und ich den Fehler net finde

                Kommentar


                • #9
                  Original geschrieben von Etienne
                  *gg* Hat sich soeben erledigt,ich habe die foreach anweisung einfach so gemacht:
                  in solchen fällen empfiehlt es sich mehr code zu posten. vielleicht hätte ich es dann gesehen .....
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Edit: Hat sich erledigt, dank unset ist auch der letzte Fehler (so hoffe ich) behoben...
                    Zuletzt geändert von Etienne; 09.01.2003, 00:52.

                    Kommentar


                    • #11
                      kannst ja mal die zeile statt deinem foreach versuchen ..

                      PHP-Code:
                      @socket_write ($keyimplode(", "$this -> test)); 
                      mfg,
                      [color=#0080c0]Coragon[/color]

                      Kommentar

                      Lädt...
                      X