Problem mit Sortierung und Limit (PHP/mySQL)

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

  • Problem mit Sortierung und Limit (PHP/mySQL)

    Hallo,
    auf meiner Seite kann man sich verschiedene Einträge anzeigen lassen und gleichzeitig bestimmen, wieviele Beiträge angezeigt werden sollen.

    Angenommen, ich habe 10 Einträge und es wurde gewählt, dass 5 Einträge angezeigt werden und gleichzeitig nach Namen sortiert werden soll, sähe das eventl. so aus:

    Eintrag 1
    Eintrag 2
    Eintrag 3
    Eintrag 4
    Eintrag 5

    und beim weiterklicken, kommen dann halt die Beiträge 6-10.

    Nun passiert es aber ab und zu, dass erst:
    Eintrag 1,2,3,6,7 erscheinen,
    beim Weiterklicken dann 6,7,8,9,10 und dann beim zurückklicken normal
    1,2,3,4,5.

    Kann das daran liegen, dass ich im SQL-Befehl sowohl ORDER BY als auch LIMIT verwende, dass er da irgendwie erst begrenzt und dann sortiert und wie kann ich das verhindern?

    MfG

    neogrande

  • #2
    eigentlich nicht!

    Aber wenn du uns mal dein statement posten würdest, könnte man sicher mehr dazu sagen und das ganze ins richtige Forum *verschieb*en.

    Kommentar


    • #3
      Hier habe ich für auch die SQL-Zeilen:

      if ($Sortierung == "Erscheinungsdatum") $Sort = "d.ERSCH, d.NAME";
      if ($Sortierung == "Dateiname") $Sort = "d.NAME, d.ERSCH";
      if ($Sortierung == "Autor") $Sort = "a.NACHNAME";

      $anfrage = "SELECT DISTINCT d.NAME FROM dateien d, autoren a WHERE EINORD='$Einord' AND d.AUTOR=a.ID ORDER BY $Sort LIMIT $anfang, $ende";


      Den Fehler habe ich gefunden, als als Sortierung das Erscheinungsdatum gewählt wurde.

      Und wie ich euch kenne, wollt ihr auch ein Beispiel zum Anschauen haben
      Geht auf http://bart.wh12.tu-dresden.de/~makoer/Testing/

      und dann auf Dieselloks...
      unter den 10 gezeigten Elementen befinden sich auch "v200" und "v200m", die aber eigentlich erst später kommen dürften.
      Klickt man nun vor, erscheinen diese 2 Elemente auch wirklich auf der 2. Seite nochmal am Anfang. Und wenn man zurückgeht, sind sie nicht mehr auf der ersten Seite zu sehen.

      Kommentar


      • #4
        wie werden $anfang und $ende definiert?

        guck dir mal JOIN an.

        macht das sinn: d.AUTOR=a.ID

        Kommentar


        • #5
          1.
          $anfang und $ende sind 2 Integers, die halt am Anfang auf 1 und 10 stehen und mit den Pfeiltasten verändert wäre.

          2.
          Ja das macht Sinn.
          Nicht für die aktuelle Sortierung, aber sehr wohl, wenn ich nach Autoren Sortieren will.
          In meiner Tabelle "dateien" steht in der Spalte AUTOR die ID des Autors der Datei. Und in der Tabelle "autoren" wird dieser ID dann alle Daten des Autors zugeordnet. Wenn ich nach Autoren sotieren will, brauche ich ja den Nachnamen des Autors, nicht die ID.
          um nicht alle dateien mit allen autoren verknüpft zu bekommen, musste diese Bedingung rein.
          Ist das etwa anders besser?

          Kommentar


          • #6
            Kleiner Nachtrag - wenn ich bei den Sortierungen jeweils das 2. Element weglasse, also nur nach Datum sortiere und nicht auch noch nach Namen, dann klappt alles wie gewollt, also an der Belegung von $anfang und $ende kann's nicht liegen.

            Kommentar


            • #7
              in meine augen ist die zweite where-bedingung sinnlos.

              sagt doch nur, dass

              d.Autor = a.ID sein muss. und das ist wohl immer der fall, wenn alle autoren dort eingetragen sind. (oder geht das zeilenweise? - weiß ich grad nicht. ist auch egal. macht beides keinen sinn)

              Guck dir mal JOIN an!

              Kommentar


              • #8
                Also ich habs mal eben getestet und diese Bedingung rausgeworfen.
                Wie erwartet ging die Sortierung nach Datum wunderbar, aber die Autorensortierung funktionierte überhaupt nicht.
                Mit dieser Funktion geht's aber.


                Was genau soll ich mir bei JOINs anschauen?
                Unter JOINs versteht man doch imho genau jene Verknüpfungen,
                die ich hier angewendet habe...

                Kommentar


                • #9
                  wohl war

                  Kommentar

                  Lädt...
                  X