Stellung in MySQL Datenbank ermitteln

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

  • Stellung in MySQL Datenbank ermitteln

    Hallo,

    mein Problem ist folgendes: Ich habe eine Tabelle, die ich mit einem "ORDER BY dailycount DESC" auslesen kann. Nun möchte ich aber nichts weiter machen, als schauen, an welcher Stelle die Zeile mit einer bestimmten ID steht. Wie mache ich das ganze? Ist mein Problem überhaupt klar geworden? Ich möchte rausfinden, an welcher Stelle die Zeile mit einer bestimmten ID steht, wenn ich die Tabelle sortiere. Einfacher wäre es natürlich, wenn ich direkt auslesen könnte, an welcher Stelle eine bestimmte Reihe steht, wenn man nach einem bestimmten Feld sortieren würde.
    Praktisches Beispiel: Ich möchte eine ganze Fußballtabelle nicht ausgeben, sondern rausfinden, an welcher Stelle eine bestimmte Mannschaft steht. Die eigentliche Position in der Fußballtabelle steht nicht in der Datenbank - jedoch stehen die erreichten Punkte in dieser. Wie mache ich das?

    Doerr

  • #2
    an welcher stelle etwas steht, kannst du rausfinden. aber du sortierst ja mit order. dadurch werdem die eigentlichen sql-Zeilennummern ja "vermischt."

    Kommentar


    • #3
      Das íst mein Problem.

      Kommentar


      • #4
        Aber so viele Teams sind es ja nicht, da kannst du doch auch alle auslesen, order by, und dann einfach mitzählen.

        Kommentar


        • #5
          Die Bundesliga war nur ein Beispiel um mein Problem zu verdeutlichen. In meinem Fall sind ca. 500 - 1500 Einträge in der Datenbank.

          Doerr

          Kommentar


          • #6
            imho gibt es dafür in mysql 3.x kein befehl... aber kannst ja irgendwie abgrenzen, und dann count()
            meine Projekte bestaunen: http://www.kleiza.de

            Kommentar


            • #7
              dann weiter am Beispiel Bundesliga.

              die Mannschaft wird eine eindeutige ID haben ? hoffe ich jedenfalls, die ein autoincrement Wert ist.

              Du ermittelst zuerst, welche ID die von dir gesuchte Manschaft hat,
              und dann zählst du die, welche kleiner sind.

              zB unsere Mannschaft hat ID 34, also

              select count(*) from mannschaften where id<34;

              das Ergebniss +1 ist die Position in der Tabelle.

              PS: Das ganze funzt nicht, wenn die Tabelle in MySQL nicht automatisch nach der ID sortiert ist. Um das zu erzwingen, kannste ein

              Alter table mannschaften order by id

              machen
              TBT

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


              PHP 2 AllPatrizier II Browsergame

              Kommentar


              • #8
                da steht:ORDER BY dailycount DESC
                wie soll den das gehen ?
                meine Projekte bestaunen: http://www.kleiza.de

                Kommentar


                • #9
                  dann nimm statt der id den dailycount als Kriterium !
                  TBT

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


                  PHP 2 AllPatrizier II Browsergame

                  Kommentar


                  • #10
                    das musste mir mal genauer erklären !
                    meine Projekte bestaunen: http://www.kleiza.de

                    Kommentar


                    • #11
                      dailycount ist nicht autoincrement. Es handelt sich um ein Countersystem (Benutzer können Counter "mieten" und in eigene HTML Seiten einbinden). in dailycount stehen die Seitenaufrufe, die am aktuellen Tag gezählt wurden. Daraus wird eine Toplist erstellt (mittels ORDER BY dailycount DESC). Im Counter selbst soll noch die Stellung in der Toplist angezeigt werden.

                      Doerr

                      Kommentar


                      • #12
                        ok, du weißt durch deine Abfrage schon wieviel Hits die entsprechende Seite heute hatte.

                        Also kannste doch die in der DB zählen, die heute schon mehr hatten.

                        So ermittelste dann den aktuellen Platz in der Toplist

                        select count(*) from toplist where dailycounter > $mycounter

                        das Ergebniss+1 ist der aktuelle Platz !
                        TBT

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


                        PHP 2 AllPatrizier II Browsergame

                        Kommentar


                        • #13
                          ich zitiere:

                          Nun möchte ich aber nichts weiter machen, als schauen, an welcher Stelle die Zeile mit einer bestimmten ID steht
                          meine Projekte bestaunen: http://www.kleiza.de

                          Kommentar


                          • #14
                            Klasse TBT! Ich hatte es mir zwar anders vorgestellt, doch so geht es auch wunderbar, denke ich. Danke!

                            Doerr

                            Kommentar


                            • #15
                              mement mal Doerr hab ich dich jetzt falsch verstanden ?
                              du hast gesagt, das du nach dem Sortieren (order by dailycount) die position mit einer bestimmten ID haben willst..

                              select count(*) from toplist where dailycounter > $mycounter

                              wird dir nur zurückliefern wieviele datensätzten über n bestimmten hitwert sind..

                              wenn du aber sagen wir mal das hier hast:
                              ID dailycounter
                              1 1
                              2 10
                              3 33
                              4 2

                              soritert nach dailycounter
                              1 1
                              4 2
                              2 10
                              3 33

                              und jetzt will ich die postion von ID=4 haben, also in diesem fall position 2

                              und wie machs du dass, TBT ?
                              meine Projekte bestaunen: http://www.kleiza.de

                              Kommentar

                              Lädt...
                              X