Hello,
Ich möchte beim Aufrufen einer Seite immer (nur) einen Datensatz aus einer DB-Tabelle (MySQL) holen. Zum Beispiel gibt es ja
WHERE'id'='10'
Jedoch interessiert es mich, ob es auch andere Möglichkeiten gibt. Wenn man mehrere Datensätze durchläuft (
$sql = mysql_query("SELECT * FROM class_skills");
while ($ds = mysql_fetch_object($sql)){
...
}
> Kommt es ja auch nicht auf die ids an. In dem Fall ruft er jeden einzelnen Datensatz auf. Jetzt würde ich gerne einfach den 5 Datensatz auslesen. Aber bei mir hat nicht der fünfte Datensatz beim Feld id die Zahl 5. Gibt es gute und elegante Lösungen für dieses Problem?
Das ist Mengenlehre.
Stell dir vor, Du hast eine Lottotrommel mit 100 Nummernkugeln. Jede Nummer kommt nur einmal vor.
Aus der Trommel werden 10 Kugeln (mit eindeutiger Nummer) gezogen.
Welche 10 Nummern werden gezogen?
\*grübel\* :-)
Siehst Du, und fast genauso funktioniert Deine Datenbank.
Mit jeder Änderung (insert, delete, update) an einer Tabelle wird "neu gemischt". Wie die Datenbank das macht, geht Dich als Nutzer außen nichts an.
Wenn Du nun eine Ordnung haben willst, musst Du ein Ordnungskriterium einfügen. Das wird i.d.R. im Datensatz selbst gespeichert. Mögliche Lösungen zur sind z.B.:
Für die Wiedererkennung eines Datensatzes:
- laufende Nummer (autoincrement)
- Unique Index mit freier Wertevergabe (aber jeder Schlüssel nur einmal)
- Timestamp (da könnte es bei zu grober Zeitmessung schon mal mehrere Datensätze mit
demselnen Zeitstempel geben)
mehr fällt mir gerade nicht ein :-)
Für die Ordnung eigent sich eigentlich jede sortierfähige Eigenschaft, also "Nachname Vorname", "Geburtstag", "Schuhgröße", ...
Du musst eben nur wissen, ob es mehrere Datensätze mit denselben Eigenschaften geben darf, oder nicht.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

--
Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>