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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #3
      Hallo norbert,

      erst einmal vielen Dank für die Antwort, habe es mit dem array probiert und es klappt prima, nochmal vielen dank
      Last edited by Etienne; 08-01-2003, 22:02.

      Comment


      • #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
        Last edited by Etienne; 08-01-2003, 22:15.

        Comment


        • #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 |


          Comment


          • #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

            Comment


            • #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 |


              Comment


              • #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

                Comment


                • #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 |


                  Comment


                  • #10
                    Edit: Hat sich erledigt, dank unset ist auch der letzte Fehler (so hoffe ich) behoben...
                    Last edited by Etienne; 08-01-2003, 23:52.

                    Comment


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

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

                      Comment

                      Working...
                      X