Einträge aus Kategorien zählen

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

  • Einträge aus Kategorien zählen

    Hallo,

    ich hätte mal ne Frage.

    Ich habe 20 Hauptkategorien mit vielen Unterkategorien.

    In jeder Unterkategorie befinden sich unterschiedlich viele Einträge.

    Wie kann ich alle Einträge, aus den Unterkategorien, die einer Hauptkategorie zugeordnert sind zählen und anzeigen lassen?

    Beispiel:

    Hauptkategorie (hier sollen alle Einträge angezeigt werden)
    Unterkategorie1 in Hauptkategorie mit 50 Einträge
    Unterkategorie2 in Hauptkategorie mit 30 Einträge
    Unterkategorie3 in Hauptkategorie mit 70 Einträge

    In der Datenbank ist für jede Unterkategorie ein Feld "counter" in dem die Anzahl der Einträge steht. Wie kann ich die Einträge aus den Unterkategorien zusammenzählen und dann auf der Hauptseite neben den Links der Hauptkategorien anzeigen lassen.

    So schaut die Datenbanktabelle aus.

    cat
    titel
    beschreibung
    counter
    parentid

    Wobei parentid mit dem Wert 0 in der Datenbank immer eine Hauptkategorie ist.

    Ich hoffe diese Informationen reichen für eine kleine Hilfestellung aus.
    Zuletzt geändert von Tommy1967; 29.01.2006, 03:57.

  • #2
    SELECT *, SUM(counter) FROM tab WHERE parentid = 0

    Kommentar


    • #3
      Das ist alles was ich brauche?

      Sorry, so viel Ahnung habe ich von PHP noch nicht.

      Wie zeige ich das dann an?

      Kommentar


      • #4
        in sql aber auch nicht. *move*
        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


        • #5
          PHP-Code:
          $SQL "dein sql-statement";
          $result mysql_query($SQL) or 
                   die(
          "<pre>["__LINE__ ."@"basename(__FILE__) ."] Error: "mysql_errno() . "@"mysql_error()."</pre>"); 
                   
          // ^^ Query senden & ggf. Fehler anzeigen..
          if ( $result )
          {
            while ( 
          $row mysql_fetch_assoc($result) )
              
          $rows[] = $row;

             echo 
          "<pre>";
             
          print_r($rows);
             echo 
          "<br></pre>";

          Lesen:
          mysql_query mysql_fetch_assoc
          OffTopic:
          Manchmal sind es die einfachen Dinge, die einem den Gedanken verdrängen, mal einen Blick ins Manual zu werfen...

          Kommentar


          • #6
            Ja so als Anfänger ist auch der Blick ins Manual ein Horror.

            Was genau macht denn dieser Code?

            Und genau hier fängt mein Problem schon an -

            $SQL = "dein sql-statement";

            Kommentar


            • #7
              Das liefert mir nun die Gesamtzahl.

              PHP-Code:

              $SQL 
              "SELECT counter FROM tab where parentid=0";
              $result mysql_query($SQL) or 
                       die(
              "<pre>["__LINE__ ."@"basename(__FILE__) ."] Error: "mysql_errno() . "@"mysql_error()."</pre>"); 
                       
              // ^^ Query senden & ggf. Fehler anzeigen..
              if ( $result )
              {
                while ( 
              $row mysql_fetch_assoc($result) )
                  
              $rows[] = $row;

                 echo 
              "<pre>";
                 
              print_r($rows);
                 echo 
              "</pre><br>";

              So wird es angezeigt.

              Array
              (
              [0] => Array
              (
              [counter] => 251
              )

              [1] => Array
              (
              [counter] => 120
              )

              [2] => Array
              (
              [counter] => 108
              )

              [3] => Array
              (
              [counter] => 114
              )

              Aber wie baue ich jetzt eine Abfrage zum zählen? Oder habe ich das alles falsch verstanden?

              Kommentar


              • #8
                Original geschrieben von onemorenerd
                SELECT *, SUM(counter) FROM tab WHERE parentid = 0
                ^^ da ist dein sql-statement..
                Ja so als Anfänger ist auch der Blick ins Manual ein Horror.

                Was genau macht denn dieser Code?
                Der Quellcode macht nichts anderes als eine Query an deinen Datenbankserver zu schicken und das Ergebnis auszulesen.

                Kommentar


                • #9
                  Wenn ich so abfrage,

                  SELECT *, SUM(counter) FROM tab WHERE parentid = 0

                  kommt -

                  [343@index.php] Error: 1140@Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

                  Kommentar


                  • #10
                    Wenn du die Fehlermeldung liest, weißt du sofort die Lösung des Problems.

                    (Falls nicht, gib es auf und lern PHP/SQL erstmal richtig, bevor du damit was anfängst!)

                    Kommentar


                    • #11
                      Original geschrieben von onemorenerd
                      Wenn du die Fehlermeldung liest, weißt du sofort die Lösung des Problems.

                      (Falls nicht, gib es auf und lern PHP/SQL erstmal richtig, bevor du damit was anfängst!)
                      Mit dieser Art Antwort kann ich beim besten Willen nichts anfangen. Wenn ich PHP gelernt hätte, dann würde ich hier ja nicht um Hilfe bitten.

                      Ist das nun ein Forum für diese Art Fragen?

                      Oder ein Forum, was den Hilfesuchenden zum Lergang schickt? Was ist der Sinn deiner Antwort? Willst du damit sagen, dass ich ohne einen Lehrgang besucht zu haben hier keine Antwort bekomme?

                      Sorry, aber ich weiß nicht, wieso ich für eine Frage erst einen Lehrgang besuchen soll

                      Kommentar


                      • #12
                        Original geschrieben von Tommy1967
                        Ist das nun ein Forum für diese Art Fragen?
                        Imho schon, aber ich erwarte minimale Eigeninitiative. Wenn du die nicht an den Tag legen willst, solltest du lieber in Projekthilfe oder Scriptgesuche posten.

                        Kommentar


                        • #13
                          Ja aber ich kann ja meine Versuche hier nicht alle posten. Das wäre ja ein Endlosthread *gg* Und ich habe ja schon viel versucht. Klappt aber alles nicht.

                          Nun dachte ich mir, dass ich meine Fragen vielleicht in einem Forum stellen sollte, weil da ja Menschen mit viel Sachverstand sitzen.

                          Es ist bestimmt auch nicht so, dass man mir die Lösung in den Schoß legen soll.

                          Ich würde mich aber tierrisch freuen, wenn man mir den richtigen Weg vielleicht doch nocht etwas näher bringen könnte.

                          Danke!

                          Kommentar


                          • #14
                            Aso, näherbringen ... hatte ich schon versucht, ist offenbar nicht angekommen ... nochmal anders:

                            Error ... if there is no GROUP BY clause

                            http://www.google.com/search?q=GROUP+BY+clause
                            http://dev.mysql.com/doc/refman/5.0/...functions.html

                            Kommentar


                            • #15
                              Ja das mit der Fehlermeldung habe ich schon nachgelesen. Damit habe ich auch kein Problem mehr.

                              Mir ist nur noch nicht ganz klar, wie ich alle Einträge aus den Unterkategorien einer Hauptkategorie zusammenzählen soll.

                              Kommentar

                              Lädt...
                              X