Buchstaben-Leiste

edit | delete

Autor: Ralf v.d.Mark

eingetragen: Donnerstag, 04. Oktober 2012 um 14:36 Uhr (40/2012 Kalenderwoche)

geändert: Freitag, 09. November 2018 um 11:25 Uhr (45/2018 Kalenderwoche)

Keywords: alphabet buchstaben

Kategorien: HTML, DB: MySQL, PHP, DB: MariaDB,

Text:

Alphabetische Liste, um z. B. ein Register für ein Telefonbuch zu erstellen.


Beispiel ergibt folgende Ausgabe:
A B C D E F G


Möglichkeit 2:


Damit nur die Buchstaben gezeigt werden, die auch vorkommen, kann man folgende Query benutzen (Beispiel für MySQL, siehe ganz unten)


Möglichkeit 3:


Alle Buchstaben werden angezeigt, aber nur die die vorkommen sind klickbar


**Hinweis: & #9398; erzeugt ein "A im Kreis" Ⓐ **
https://download.website-vdm.de/stringumformer/charunicode.php?s...


siehe auch:
HTML: Unicodeblock piktografische Symbole

Quellcode:  

for ($i = 65; $i <= 90; $i++) {
    if (!empty($buchst) && $buchst == chr($i)) {
        $styleBuchstabe = ' style="font-size: 1.5em;
                                   background-color: #19633E; 
                                   color: #E6EAB2;"';
    } else {
        $styleBuchstabe = '';
    }//ENDE: else ==> if()
    echo '<a href="index.php?id=6&buchst='.chr($i).'"'
                .$styleBuchstabe
                //& #9398; = A im Kreis
            .' title="'.chr($i).'">&#'.($i + 9333).';</a>';
}//ENDE: for ($i = 65; $i <= 90; $i++) ;

-------------------------------------------
Möglichkeit 2: 

MySQL-Query:
--
SELECT  UCASE(SUBSTRING(`pers_name`, 1, 1)) AS buchst_name, 
        COUNT(`pers_id`) AS personen_anzahl
FROM    `personen`
GROUP BY buchst_name
ORDER BY buchst_name
--

<?php

$resultQuery = mysql_query(...);
while ($ergebnsArr = mysql_fetch_assoc_uni($resultQuery)) {
    if (!empty($buchst) && $buchst == $ergebnsArr['buchst_name']) {
        $styleBuchstabe = ' style="font-size: 1.5em; 
                                   background-color: #19633E; 
                                   color: #E6EAB2;"';
    } else {
        $styleBuchstabe = '';
    }//ENDE: else ==> if()
    echo '<a href="index.php?id=6&buchst='.$ergebnsArr['buchst_name'].'"'
                .$styleBuchstabe
            .'title="'.$ergebnsArr['personen_anzahl']
                    .' Personen anzeigen ...">'
                .' '.$ergebnsArr['buchst_name'].' </a>';
}

    /* Möglichkeit 3 (Kombination aus 1 und 2):

    MySQL-Query:
    --
     SELECT  UCASE(SUBSTRING(`pers_name`, 1, 1)) AS buchst_name,
     COUNT(`pers_id`) AS personen_anzahl
     FROM    `personen`
     GROUP BY buchst_name
     ORDER BY buchst_name
    -- 
$resultQuery = mysqli_query(...);
$ergebnsArr = mysqli_fetch_assoc($resultQuery);

for ($i = 65; $i <= 90; $i++) {
    if (!empty($buchst) && $buchst == $ergebnsArr[chr($i)]['buchst_name']) {
        $styleBuchstabe = ' style="font-size: 1.5em;
                background-color: #19633E;
                color: #E6EAB2;"';
    } else {
        $styleBuchstabe = '';
    }//ENDE: else ==> if()

    if (!empty($ergebnsArr[chr($i)]['buchst_name'])
      && chr($i) == $ergebnsArr[chr($i)]['buchst_name']) {
        echo '<a href="index.php?id=6&buchst='
                     .$ergebnsArr[chr($i)]['buchst_name'].'"'
                .$styleBuchstabe
                .'title="'.$ergebnsArr[chr($i)]['personen_anzahl']
                .' Personen mit *'.chr($i).'* anzeigen ...">'
                        .'&#'.($i + 9333).';</a>';
    } else {
        echo ' '.chr($i).' ';
    }

}