phpbar.de logo

Mailinglisten-Archive

Nächsten/Vorherigen Eintrag in alphabetischer Reihenfolge anzeigen

Nächsten/Vorherigen Eintrag in alphabetischer Reihenfolge anzeigen

Johannes Dillmann trezta at gmx.net
Son Okt 17 19:47:52 CEST 2004


Guten Abend!

Ich habe hier eine Datenbank mit folgendem Aufbau.
---
char_id (Primary, auto_inc)
char_name (varchar, index)
active (tinyint, index)

[Daten zu dem Character]
---

Nun wurde leider von mir gefordert auf jeder Detailseite einen Link zu 
dem Character mit dem alphabetisch folgenden Namen zur Verfügung zu 
stellen.
Nach einiger Nachdenkzeit habe ich nun auch eine Lösung erstellt, die 
soweit funktioniert.

--- (für den nächsten eintrag)
SELECT e2.char_id
FROM ew_profiles e1, ew_profiles e2
WHERE e1.char_id = $char_id
AND e2.active = 1
AND e2.char_name >= e1.char_name
AND CONCAT(e2.char_name, e2.char_id) > CONCAT(e1.char_name,  e1.char_id)
ORDER BY e2.char_name ASC
LIMIT 1
---

Ich bin mir aber bei der gesamten Sache ziemlich unsicher. 
Hauptsächlich, da ich das Gefühl habe es müsste doch eine vielleicht 
trivialere Lösung geben? Und da ich nicht wirklich abschätzen kann, was 
mysql da nun intern macht - ob es irgendwelche starken Lasten erzeugt? 
Ich hätte ja auch noch die Möglichkeit, die Relationen beim erstellen / 
ändern der Datensätze mit zu speichern. Allerdings bin ich mir darüber 
unsicher, da durch Fehler, oder manuelle Eingriffe in die Datenbank die 
Relationen nicht mehr stimmten. Kann mir vielleicht jemand mit mehr 
Erfahrung meine Sorgen vertreiben?
Oder übersehe ich vielleicht sowieso eine viel einfachere Variante? Wie 
würdet ihr denn soetwas lösen.

Ich danke euch schonmal für eure Aufmerksamkeit und hoffentlich Hilfe
Johannes Dillmann

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive