gruppen

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

  • gruppen

    hey nochmal zusammen.
    ich steh schon wieder vor einem problem.

    ich möchte für meine comm eine gruppenfunktion bauen.
    soweit so gut..alles klappt..nur ich krieg die verdammte anzahl der unterschiedlichen gruppenmitglieder nicht hin.

    mein system läuft mit smarty und php..

    so siehts in der db aus:

    2 tabellen:

    1. groups
    -groupid
    -groupname

    2. groups_users
    -groupid
    -userid

    das steht in der php:
    jetzt hab ich hier nur einen teil der php, weil ich so viel am rumprobieren war.

    PHP-Code:
    <?
    ### gruppen auslesen
        $groups =& $rrDB->getAll('select * from ! ', array( GROUPS_TABLE ));
        
        $t->assign('groups', $groups);

    ################

        $anzahl =& $rrDB->getAll('select * from ! ', array(GROUPS_USERS_TABLE, ));
        
        $t->assign('anzahl', $anzahl);
    ?>
    das steht im template:

    HTML-Code:
                        {foreach item=item key=key from=$groups}
                        
    
    
                        gruppe: {$item.groupid} <br />
                        gruppenname: {$item.groupname}<br />
                        anzahl der mitglieder:{$anzahl} <br />
    
                        {/foreach}
    das problem genau:
    ich bekomme alles ausgelesen, name der gruppen und auch die id´s.
    nur bei der anzahl der mitglieder der einzelnen gruppen scheitert es.
    ich hab nun schon so oft rumprobiert und bekomme es einfach nicht hin das für alle gruppen die anzahl ausgelesen wird.
    das auslesen selbst klappt zwar, aber er gibt immer nur die anzahl einer gruppe aus und weißt sie auch allen gruppen zu..

    ich hoffe ich hab das nicht so kompliziert beschrieben..

    bitte um hilfe und denkanstöße. würde das gern versuchen allen zu schaffen nur ohne eure unterstützung wird das nix

    danke schonmal vielmals im vorraus.

    edit:
    hatte es auch schon mit

    <?
    $t->assign("anzahl", count($groups));
    ?>

    versucht..
    er liet zwar die anzahl der user einer gruppe aus, weißt sie aber allen gleich zu :/
    Zuletzt geändert von activexactive; 08.08.2009, 23:21.

  • #2
    Du machst mit deinen Smarty und unbekannter Databasa-Classe nich nur dir , sondern auch uns das Leben schwer

    du muss erst richtige daten holen und die query dafür wäre
    Code:
    select g.groupid,groupname,(select count(*) from groups_users gu where gu.groupid=g.groupid) as anzahl  from groups g
    Slava
    bituniverse.com

    Kommentar


    • #3
      $groups =& $rrDB->getAll('select * from ! ', array( GROUPS_TABLE ));

      hiermit lese ich ja schon aus der db aus.

      das ganze hab ich auch schon mit count(userid) probiert. kann dabei ja nicht
      * verwenden, da mich ja nur jeweils die gruppe interessiert mit den userns der einzelnen gruppen.

      so sah meine query auch in etwas aus. ich muss das halt smarty gerecht umsetzen:
      PHP-Code:
      $anzahl =& $rrDB->getAll('select count(*) from ! where groupid = ? as $anzahl from ! ', array(GROUPS_USERS_TABLE1GROUPS_TABLE)); 
      aber so klappt das leider auch nicht.. hab als beispiel hier mal die 1 als gruppenid gesetzt. andernfalls brauche ich hier den wert aus der schleife.
      die liefert dann allerdings smarty und genau da ist das problem.
      hatte das schon mit $groups statt die 1 davor versucht.
      die query für das gruppenauslesen sieht so aus:

      PHP-Code:
      ### gruppen auslesen
          
      $groups =& $rrDB->getAll('select * from ! ', array( GROUPS_TABLE ));
          
          
      $t->assign('groups'$groups); 
      und das klappt ja auch alles wunderbar. nur die anzahl will eifnach nicht
      irgendwo muss doch der fehler sein

      Kommentar


      • #4
        also das hier müsste nun die richtige query und die variablen sein:

        PHP-Code:

            $anzahl 
        =& $rrDB->getAll('select userid from ! where groupid = ? ', array(GROUPS_USERS_TABLE$groupsGROUPS_TABLE));
            
            
        $t->assign("count"count($anzahl)); 
        ich bin mir sicher, weil ich $groups mit den gruppen id´s austauschen kann und so die ergebnisse aber wie schon gesagt nur für eine gruppe ausgegeben bekomme. dieser wert wird nun allen gruppen durch smarty zugewiesen.

        ich denke da haut was mit der schleife bei smarty nicht hin, weiß aber nicht wie ich es umsetzen soll.

        das ist momentan im template:

        HTML-Code:
            {foreach item=item key=key from=$groups}
                            
        
        
                            gruppe: {$item.groupid} <br />
                            gruppenname: {$item.groupname}<br />
                            anzahl der mitglieder:{$count} <br />
        
                            {/foreach}
        bei anzahl der mitglieder müsste demnach auch eine schleife rein, um auch wirklich alle gezählten gruppenmitgliederausgeben zu lassen. aber wie ?
        Zuletzt geändert von activexactive; 09.08.2009, 15:29.

        Kommentar


        • #5
          okay, ich brauch etwas mehr hilfe
          ich bekomme es nicht hin.

          Kommentar


          • #6
            Zitat von activexactive Beitrag anzeigen
            okay, ich brauch etwas mehr hilfe
            ich bekomme es nicht hin.
            hast du doch von mir bekommen.
            Du brauchst jetzt nur eine query und
            {$count} durch {$item.anzahl} zu ersetzen.
            Slava
            bituniverse.com

            Kommentar


            • #7
              na das hab ich doch auch so gemacht. da passierte aber nichts

              PHP-Code:
              $anzahl =& $rrDB->getAll('select count(*) from ! where groupid = ? as $anzahl from ! ', array(GROUPS_USERS_TABLEGROUPS_TABLE)); 
              oder ist das etwa falsch?

              achso und was hat das g.groupid auf sich?

              Kommentar


              • #8
                Ich glaube, dass es kaum möglich ist Ihnen mit einem fachlichen Vorschlag weiter zu helfen (zu wenig Grundkenntnissen) .
                Versuchen Sie bitte bei anderen Unterforen:
                "Appz und Script Gesuche" ,"Projekthilfe","Jobangebote"
                Slava
                bituniverse.com

                Kommentar


                • #9
                  hi.ich verstehe die abfrage schon. nur nicht, warum da jetzt so viel dran rumgebastelt wird.
                  ich kann die abfrage halt nicht auf diese weise verwenden da sie smartygerecht umgesetzt werden muss. oder ich hab da gerade einen denkfehler?

                  Kommentar


                  • #10
                    Hi,

                    Zitat von activexactive Beitrag anzeigen
                    hi.ich verstehe die abfrage schon.
                    welche? Slavas? Anscheinend nicht, denn sonst hättest Du den Subselect nicht unterschlagen. Und einem Ausdruck der Where-Klausel kann man keinen Alias geben. Das müsste einen Syntaxfehler ergeben. Da man aber Deine DB-Klasse immer noch nicht kennt, weiß niemand, ob Du die überhaupt zu Gesicht bekommen würdest...

                    Zitat von activexactive Beitrag anzeigen
                    nur nicht, warum da jetzt so viel dran rumgebastelt wird.
                    Wenn an der Abfrage nicht "rumgebastelt" werden müsste, dann wär ja alles im Lot und du hättest hier nicht fragen müssen, oder?

                    LG

                    Kommentar


                    • #11
                      Zitat von kuddeldaddeldu Beitrag anzeigen
                      Hi,
                      welche? Slavas? Anscheinend nicht, denn sonst hättest Du den Subselect nicht unterschlagen.
                      hi..oh man..ja, jetzt seh ichs auch. hatte den select die ganze zeit garnicht berücksichtigt.deshalb wunderte ich mich warum da die 2 from abfragen waren.

                      kopf@tisch.. danke *g*

                      Kommentar


                      • #12
                        achso..hab ich ja och ganz vergessen.

                        sry für meine hohlheit, war schon so lange da am rumpfuschen das ich bald selbst ned mehr durchgeblickt habe.

                        hättest du kuddeldaddeldu mich nicht auf den zweiten select aufmerksam gemacht, wär ich bestimmt immernoch ab rätseln.
                        und das mit den g.groups wurde mir dann logicherweise auch klar.
                        ich hatte ja 2 tabellen mit groupid ..hab ich erstmal geändert. ist wohl etwas unübersichtlich sonst :/

                        vielen dank slava

                        und hier zum abschluss noch die passende auflösung wie es sich gehört

                        PHP-Code:
                        $anzahl $rrDB->getAll'select groupid,groupname, (select count(*) from ! where groupuserid=groupid) as anzahl from ! ', array( GROUPS_USERS_TABLE,GROUPS_TABLE ) );
                        $t->assign('anzahl'$anzahl); 
                        Zuletzt geändert von activexactive; 10.08.2009, 20:11.

                        Kommentar

                        Lädt...
                        X