Einträge in Kategorie zählen UND ausgeben.

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

  • Einträge in Kategorie zählen UND ausgeben.

    Hallo,

    hab dann heute doch noch mal angefangen was zu programmieren um mir den Alltag etwas leichter zu machen.

    Erstelle eine Linkliste. Links können in Kategorien sortiert werden. Nun gebe ich die Links nach Kats geordnet aus:

    Code:
    SELECT link 
    FROM links 
    ORDER BY category
    Soweit kein Problem. Allerdings würde ich in dieser Query gerne noch die anzahl der Links pro Category zählen.

    Allerdings kann ich die Query nicht einfach mit einem einfachen COUNT(link) inkl. GROUP BY category erweitern,

    Code:
    SELECT link,COUNT(link) counter 
    FROM links 
    GROUP BY category 
    ORDER BY category
    da dieses GROUP BY ja auch die Links gruppiert und somit nur noch ein Link je Kategorie ausgegeben wird. Wie kann ich das umgehen?

    Tabelle:
    link | category
    url1 | 1
    url2 | 1
    url3 | 2
    url4 | 1
    url5 | 2

    gewünschte Ausgabe

    link | counter
    url1 | 3
    url2 | 3
    url4 | 3
    url3 | 2
    url5 | 2

  • #2
    da dieses GROUP BY ja auch die Links gruppiert und somit nur noch ein Link je Kategorie ausgegeben wird. Wie kann ich das umgehen?
    mit nur einer query gar nicht.

    alternative ... 2. query. ist doof ...

    2. alternative .... in php entpsprechend pro cat einen (wiederverwendbaren) counter hochzählen.

    nach jeder rubrik den counter am deine tmpl-engine schicken und die links dazu gleich mit.

    das solange wiederholen bis alle rubriken der tmpl bekannt sind.

    fertig. ist doch ganz einfach ...
    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
      wenn ich die tpl einsetzen würde, hätte ichs auch so gemacht! Aber wollt eigentlich nur grad 3 zeilen code schreiben...

      3. alternative wäre mit mysql_data_seek deine zweite alternative pseudo-umzusetzen.

      das erscheint mir dann allerdings wiederum weniger schön, als die zweite query abzusetzen.

      Kommentar


      • #4
        Code:
        SELECT b.link,COUNT(a.link) counter 
        FROM links a
        INNER JOIN links b
           ON ( a.category = b.category )
        GROUP BY a.category 
        ORDER BY a.category
        ungetestet
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          Die Idee ist nicht dumm!

          liefert leider weiterhin nur einen link pro kat, dafür aber die eigentliche Anzhahl zum Quadrat

          Hab noch n paar andere varianten (zb. "order by b.category") in dieser Richtung versucht, leider erfolglos. Und soweit ist das Ergebnis ja auch nachvollziehbar. Naja.

          Kommentar


          • #6
            stimmt, gruppiere mal nach b.link statt a.category
            TBT

            Die zwei wichtigsten Regeln für eine berufliche Karriere:
            1. Verrate niemals alles was du weißt!


            PHP 2 AllPatrizier II Browsergame

            Kommentar


            • #7
              klar, zählt absout korrekt jetzt! danke euch!!!

              Kommentar

              Lädt...
              X