Begriffe zählen und auswerten

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

  • Begriffe zählen und auswerten

    Hi Leute

    ich hab hier ne MySQL Datenbank wo in ner Spalte verschiedenste Wörter untereinander stehen. Jetzt möchte ich diese Wörter zählen und am ende vom dem am häufigsten vorgekommenen Wort bis zum am wenigsten vorgekommenen Wort auflisten und daneben die Anzahl. Ich weis wie ich die Wörter mit MySql anrufe und in nen Aray schreibe auch wie die Ausgabe zu realisieren ist aber wie das zählen von statten gehn soll bin ich bisher immer gescheitert. Nen Ansatz hatte ich indem ich mir das erste Wort aus dem Array ziehe und das gesamte danach durchsuche und immer wenn ich eines finde ich nen Zähler hochsetze und das Wort aus dem Array lösche solange bis ich keine Werte mehr im Array hab. Da gibts es doch aber bestimmt noch was besseres.

    Gruß Daniel

  • #2
    http://dev.mysql.com/doc/refman/5.0/...count-distinct

    Kommentar


    • #3
      @ penizillin Danke für deine Antwort. Soweit war ich ja auch schon nur hab ich da Problem das ich die Wörter nicht kenne.
      Aber wenn ich mir vorher die Spalte in ein Array lese und dann für jede Array value nen SELECT DISTINCT Name, COUNT(Name) FROM Kunden WHERE Name LIKE 'array[1]' GROUP BY Name mache müsste es doch gehen oder?

      Kommentar


      • #4
        Wow, das machst du vielleicht bei 100 Wörtern, aber bei 1000 Wörtern und ein bisschen Traffic wirst du das schon wieder sein lassen.

        Schau dir mal das Ergebnis deiner Query an, wenn du die einschränkung des WHERE weg lässt.

        Kommentar


        • #5
          @TobiaZ Super genau so wollte ich das fast. Wie kann ich diese Suche über meine 25 Tabellen in der Datenbank laufen lassen? Es gibt in jeder Tabelle die gleiche Spalte in der ich diese Wörter zählen muss. Mit union klappt das nur nicht.

          Kommentar


          • #6
            dann machst du eben 25 abfragen hintereinander.
            aber das klingt nicht gerade nach durchdachtem db-design. warum hast du denn 25 ähnliche spalten?

            Kommentar


            • #7
              Wie kann ich diese Suche über meine 25 Tabellen in der Datenbank laufen lassen?
              Schwierig.

              Soll das bei jedem Seitenaufruf passieren?
              Dann musst du dir was einfallen lassen. Normalisieren oder Cachen, ...

              Kommentar


              • #8
                @ penizillin Wenn ich 25 Anfragen hintereinander mache dann hab ich quasi von jeder Tabelle diese Auswertung in nem Array. Ist zwar schon mal nicht schlecht aber ich hab das PHP Handbuch hin und hergewälzt und finde keinen Ansatz wie ich diese Arrays kombinieren soll damit jedes Wort als Key nur einzeln drin vorkommt und als Value halt die Anzahl. Es soll mit den Tabellen eine statistische Auswertung gemacht werden. Sprich z.B. Verkauf. Jede Tabelle steht für einen Verkäufer und in dieser Tabelle werden dann eben verschiedenste Sachen wie datum, Produkt od. Modell, Preis, usw. Für die Spalte Modell soll dann halt eben ne Statistik erstellt werden die Anzeigt welches am besten läuft. Deshalb so ne Struktur.

                @TobiaZ Eigentlich soll bei jedem Aufruf dies Tabellen ausgelesen werden. Aber der Zugriff beschränkt sich im Moment auf 4 User.

                Kommentar


                • #9
                  Original geschrieben von Dani Düsentrieb
                  Jede Tabelle steht für einen Verkäufer
                  Das ist, entschuldige den Ausdruck, idiotisch.

                  Daten gleicher Struktur werden auch in der gleichen Tabelle abgelegt.


                  Ändere also dein Datenbankdesign.
                  Führe eine zusätzliche Verkäufer-ID ein, um die Datensätze in dieser einen Tabelle dem Verkäufer zuordnen zu können.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    @wahsaga Deshalb frag ich ja auch hier. Ok hab ichs halt idiotisch angegangen. Ich versuche das mal und werde mich wieder melden wenn ich fragen hab. Denn damit erübrigen sich alles andere.

                    Dank für Eure Hinweise.

                    Daniel

                    Kommentar

                    Lädt...
                    X