select count(*) - Sortieren nach Ergebniss

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

  • select count(*) - Sortieren nach Ergebniss

    Hi @ll.

    ich lass mir mit folgender while-Schleife ausgeben wie oft eine Kategorie ausgewählt wurde.

    Ich hätte das Ergebniss aber gern Sortiert, von der Kategorie mit der größten Anzahl bis zur kleinsten. Jetzt kommt es einfach unsortiert so wie es in der Table steht.

    Siehe Skript:

    PHP-Code:
    <?php
    while($show=mysql_fetch_array($select))
        {
    #    Es wird eine SQL-Abfrage generiert. Es wird die ID aus der Tabelle kategorie gefiltert
    #    und gesucht wie oft die ID in der Tabelle name vorkommt
        
    $select_count=mysql_query(" SELECT Count(*) as anzahl FROM $tb_name WHERE (kategorie1='$show[id]' or kategorie2='$show[id]' or kategorie3='$show[id]' or kategorie4='$show[id]' or kategorie5='$show[id]') ");
        
    $show_count=mysql_fetch_array($select_count);
        echo 
    "
            <tr>
                <td width=\"3%\"><nobr>
    $show[kategorie]</nobr></td>
                <td>
    $show_count[anzahl]</td>
            </tr>"
    ;
        };

    ?>
    Geht das, und wie?

    DANKE

    Gruß

    Patrick

  • #2
    ich weiss zwar nicht, warum du kategorie1 - n gemacht hast ... aber wenn du nur eine spalte hast, geht es so.


    Code:
    SELECT COUNT(*) anzahl, kategorie FROM tabelle GROUP BY kategorie ORDER BY anzahl DESC
    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


    • #3
      Original geschrieben von Abraxax
      ich weiss zwar nicht, warum du kategorie1 - n gemacht hast ... aber wenn du nur eine spalte hast, geht es so.


      Code:
      SELECT COUNT(*) anzahl, kategorie FROM tabelle GROUP BY kategorie ORDER BY anzahl DESC
      Hi,

      danke schon mal für die Antwort.

      Geht so aber nicht. Ich sollte vielleicht erst mal den groben Tabellenaufbau aufzeigen:

      table: kategorie

      ID
      KATEGORIE

      table: links

      ID
      NAME
      KATEGORIE1
      KATEGORIE2
      KATEGORIE3
      KATEGORIE4
      KATEGORIE5

      In den Feldern Kategorie1 bis 5 wird die ID der Tabelle links gespeichert.

      Ich postet mal das ganze Skript, dann sollte es klar sein:

      PHP-Code:
      <?php
          
      include("./inc/config.inc.php");
      // SQL-Abfrage zum Zählen der Datensätze für die Table name
          
      $name=mysql_query("SELECT Count(*) as anzahl FROM $tb_name");
          
      $count_name=mysql_fetch_array($name);
      // SQL-Abfrage zum Zählen der Datensätze für die Table kategorie
          
      $kategorie=mysql_query("SELECT Count(*) as anzahl FROM $tb_kategorie");
          
      $count_kategorie=mysql_fetch_array($kategorie);
      // SQL-Abfrage für die Table kategorie
          
      $select=mysql_query("SELECT id,kategorie FROM $tb_kategorie");
      ?>


      <html>
      <head>
      <title><?php echo "$pagetitel"?></title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      </head>
      <body>
      <strong>Statistiks</strong>
      <hr>
      <br>
      <table width="95%" border="1">
      <?php
      while($show=mysql_fetch_array($select))
          {
      #    Es wird eine SQL-Abfrage generiert. Es wird die ID aus der Tabelle kategorie gefiltert
      #    und gesucht wie oft die ID in der Tabelle name vorkommt
          
      $select_count=mysql_query(" SELECT Count(*) as anzahl FROM $tb_name WHERE (kategorie1='$show[id]' or kategorie2='$show[id]' or kategorie3='$show[id]' or kategorie4='$show[id]' or kategorie5='$show[id]') ORDER BY anzahl DESC ");
          
      $show_count=mysql_fetch_array($select_count);
          echo 
      "
              <tr>
                  <td width=\"3%\"><nobr>
      $show[kategorie]</nobr></td>
                  <td>
      $show_count[anzahl]</td>
              </tr>"
      ;
          };

      ?>
      </table>

      </body>
      </html>
      Danke Euch.

      Gruß
      Zuletzt geändert von White-Horse; 02.10.2003, 15:07.

      Kommentar


      • #4
        du erfasst damit zu welchen kategorien ein link gehört?

        wenn du ne kategorie hinzufügst musts du deine tabelle erweitern?

        alles käse

        mach das mit 3 tabellen:
        Code:
        tabelle kategorie
        kategorie_id | kategorie
                   1 | Kategorie 1
                   2 | Kategorie 2
        
        tabelle link
        link_id | link
              1 | Link 1
              2 | Link 2
              3 | Link 3
              4 | Link 4
        
        tabelle zuordnung
        kategorie_id | link_id
                   1 | 1
                   1 | 3
                   1 | 4
                   2 | 1
                   2 | 2
                   2 | 3
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          du erfasst damit zu welchen kategorien ein link gehört?

          wenn du ne kategorie hinzufügst musts du deine tabelle erweitern?

          alles käse

          mach das mit 3 tabellen:
          Code:
          tabelle kategorie
          kategorie_id | kategorie
                     1 | Kategorie 1
                     2 | Kategorie 2
          
          tabelle link
          link_id | link
                1 | Link 1
                2 | Link 2
                3 | Link 3
                4 | Link 4
          
          tabelle zuordnung
          kategorie_id | link_id
                     1 | 1
                     1 | 3
                     1 | 4
                     2 | 1
                     2 | 2
                     2 | 3
          Hi,

          ich erfasse meine Hyperlinks und ordne den Links verschiedene Kategorien zu. Bis maximal 5 Stück.

          *malüberleg*

          Ist vielleicht gar nicht so dumm das ganze über eine Zuordnungstabelle zu machen.

          Gut, das kann ich immer noch machen.

          Mein Problem ist aber noch nicht gelöst, es muß doch funktionieren das ich meine Ausgabe nach der maximalen Zuordnung sortiert bekomme.

          Jetzt muß ich erst noch mal überlegen!

          Gruß

          Kommentar


          • #6
            du kannst nur nach einer spalte sortieren lassen und datensätze die in dieser spalte den gleichen wert haben nach einer eventeull noch angegebenen zweiten spalte usw.

            du willst aber nach allen spalten gleichzeitig sortieren, das geht nicht

            mach es mit der zuordnungstabelle, du kannst es später leicher erweitern, kannst leichter abfragen und hast nicht so viel überflüssiges zeug in deiner datenbank
            OffTopic:
            war es wirklich nötig meinen kompletten beitrag zu zitieren?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Ok, dann wird mir wohl nichts anderen übrig bleiben. Danke

              OffTopic:
              war es wirklich nötig meinen kompletten beitrag zu zitieren?
              Ich lerne dazu

              Gruß

              Patrick

              Kommentar


              • #8
                Original geschrieben von White-Horse
                Ok, dann wird mir wohl nichts anderen übrig bleiben. Danke
                gern geschehen
                Ich lerne dazu
                wohlwollend zur kenntnis genommen *g*
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar

                Lädt...
                X