• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Abfrage nach 'ID', sortiren nach 'Nr', Ausgabe der letzten 10 Datensätze

muecke

Mitglied
Hallo miteinander,

ich habe eine Tabelle mit dem Namen "daten"
In der Tabelle sind mehrere Spalten, ich möchte mir jetzt den Inhalt anzeigen lassen der Tabelle jedoch komme ich da nicht weiter :-(

Das sind die Bedingungen.

1. Nur Einträge mit der "User-ID" = 2
2. Datensätze Sortieren nach der Spalte "Nr"
3. immer nur 10 Datensätze ausgeben (von hinten angefangen)

Ich möchte mir die Datensätze ausgeben lassen so das sie gut auf dem Bildschirm passen.
daher Möchte ich immer nur 10 Datensätze auf ein mal sehen.
ich möchte dann unter die von mir erstellte Tabelle einen Knopf (Weiter) und einen (Zurück) machen
so das ich vor und zurück laufen kann in der Ansicht.


Ich mache die Abfrage gerade noch im phpMyAdmin soll dann später jedoch per PHP auf der Webseite gemacht werden.


Was ich bisher schon habe.


SELECT * FROM `daten` WHERE `User-ID` LIKE 2 ORDER BY `Nr` ASC LIMIT 0,10​

1. Alle Spalten aus der Tabelle daten
2. Nur datensätze wenn User-ID = 2
3. Sportire die Datensätze nach niedrig zu Hoch aus der Spalte Nr
4. Ausgabe von Datensatz 0 bis 10

Bei Punkt 4 habe ich ein Problem, woher wies ich was der Nächste Datensatz ist?
muss ich das in einer Extra Abfrage vorab ermitteln? und dann im PHP jeweils ausrechne was ich anzeigen lassen möchte
oder gibt es da MySQL eine Möglichkeit?


Gruß Mücke
 
Du weißt doch bestimmt auf welcher Seite du dich grad befindest, das packst in eine Variable und schon weißt du welche Datensätze du ausgeben sollst. Oder steh ich jetzt auf dem Schlauch??
 
Ach so, jetzt wies ich was du meinst, udn woher wies ich wann ich am ende bin? und kein Datensatz mehr kommt?
 
Du kannst doch ermitteln wieviele Datensätze du hast und dann weißt du auch wann Ende ist.
 
OK, demnach kann ich das nicht in einer Abfrage machen sondern mache das in zwei Separaten abfragen.


SELECT `Nr` FROM `daten` WHERE `User-ID` LIKE 2 ORDER BY `Nr` DESC LIMIT 1​

EDIT: das ist Quatsch was ich da gemacht habe, denn die Nr. kann viel höher sein als die Anzahl der Datensätze.
ich muss also raus bekommen wie viele Datensätze ich habe.
da muss ich noch mal drüber nachdenken.
 
Ich habe es gefunden.


SELECT COUNT(`User-ID`) FROM daten WHERE `User-ID` LIKE 2​

Danke. irgend wie Stand ich auf dem Schlauch.
Danke.
 
Naja wenn du wirklich nur 2 haben willst, solltest du auch "=" nehmen. LIKE nimmst du eigentlich nur wenn du Beispielweise eine Nummer haben willst die mit zwei beginnt oder endet. Ala 'LIKE %2' oder 'LIKE 2%'.

Ein anderes Beispiel wäre, wenn du nach Namen suchst die mit A beginnen. Dann z.B. 'LIKE A%'.
 
Guckst du:

select lfd_nr from tabelle where lfd_nr = 200;
+--------+
| lfd_nr |
+--------+
| 200 |
+--------+
1 row in set (0.01 sec)

select lfd_nr from tabelle where lfd_nr like 200;
+--------+
| lfd_nr |
+--------+
| 200 |
+--------+
1 row in set (0.19 sec)
 
Zurück
Oben