Buchstabenindex Hilfe

Hi,

ich möchte etwas ähnliches basteln. Stehe jedoch vor einer Frage. Was findet ihr sinnvoller (v.a. schneller) für eine Buchstabenübersicht, bei der nur Buchstaben mit mindestens einem Eintrag verlinkt werden sollen:

1.
Für jeden Buchstaben eine SQL Abfrage machen und per mysql_num_rows(); feststellen ob es mindestens einen Eintrag gibt.

2.
Alle Einträge auslesen (es werden in absehbarer Zeit nicht mehr als 100, vielleicht 200), diese in eine Array speichern und diesen dann mit PHP überprüfen. Bzw direkt nach der Abfrage mit 27 if-Anweisungen überprüfen zu welchem Buchstaben es noch keine EInträge gibt.

Über weitere klügere Lösungen würde ich mich natürlich auch freuen.

Grüße,
Steffen
 
Ich würde mich für Varainte A entscheiden, weil meiner Meinung nach diese Variante schneller bearbeitet wird. Lässt sich aber gut mittels microtime() bestimmen ;)
 
Hallo,
ich würde das Problem wiefolgt angehen. Erstmal die Indizes, zu denen Einträge vorhanden sind ermitteln:
SQL:
SELECT
    LEFT(UPPER(<feld_der_eintragstitel>), 1) AS letter_index
FROM
    <lexikon_tabelle>
GROUP BY
    letter_index;

Dann das Alphabet durchgehen und überprüfen, ob Einträge zum jeweilige Index vorhanden sind:
PHP:
<?php
while ($row = mysql_fetch_assoc($result)) {
    $indexes[] = $row['letter_index'];
}

for ($i = 65; $i <= 90; $i++) {
    if (in_array(chr($i), $indexes)) {
        // Index verlinken
    } else {
        // Index nicht verlinken
    }
}
?>

Gruß
Marvin
 
Zurück