database lijst op alfabet met header
Ik ben opzoek naar een manier om een lijst uit me database te halen op alfabet maar dan met headers er boven zoals bijv:
A
Appels
Aarbeien
B
Bananen
C
Citroen
Enz.
Dit script hieronder plaatst ze al in alfabetische volgorde alleen hoe maak ik de headers?
Let op de variabelen, die moet ik ook maar gokken omdat je geen code meegeeft als voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// dan hier je while-loop
while($row = mysqli_fetch_assoc($result))
{
// kijk of de eerste letter ander is:
if( !isset($vorige_indexletter) OR strtoupper(substr($row['naam'], 0, 1)) !== $vorige_indexletter)
{
// hier dus je heading.
echo '<h2>' . strtoupper(substr($deze_rij, 0, 1)) . '</h2>';
}
// hier de namen tonen als Appels/Aardappels etc
// en hier nog wat om te onthouden, moet altijd
$vorige_indexletter = strotoupper(substr($deze_rij['naam'], 0, 1));
}
?>
// dan hier je while-loop
while($row = mysqli_fetch_assoc($result))
{
// kijk of de eerste letter ander is:
if( !isset($vorige_indexletter) OR strtoupper(substr($row['naam'], 0, 1)) !== $vorige_indexletter)
{
// hier dus je heading.
echo '<h2>' . strtoupper(substr($deze_rij, 0, 1)) . '</h2>';
}
// hier de namen tonen als Appels/Aardappels etc
// en hier nog wat om te onthouden, moet altijd
$vorige_indexletter = strotoupper(substr($deze_rij['naam'], 0, 1));
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$result = mysql_query("SELECT * FROM bestanden ORDER BY auteur ASC");
while ($row = mysql_fetch_array($result)) {
if (!isset($index) || strtoupper($row['naam'][0]) !== $index) {
echo '<h2>'.strtoupper($row['name'][0]).'</h2>';
}
$index = strotoupper($row['naam'][0]);
}
?>
$result = mysql_query("SELECT * FROM bestanden ORDER BY auteur ASC");
while ($row = mysql_fetch_array($result)) {
if (!isset($index) || strtoupper($row['naam'][0]) !== $index) {
echo '<h2>'.strtoupper($row['name'][0]).'</h2>';
}
$index = strotoupper($row['naam'][0]);
}
?>
Gewijzigd op 29/04/2013 13:42:21 door Joakim Broden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if (!function_exists("dbConnect")) {
include 'database/config.php';
include 'database/lib.php';
}
$db = dbConnect();
$result = mysql_query("SELECT * FROM `bestanden` ORDER BY auteur ASC LIMIT 10000");
$num_rows = mysql_num_rows($result);
while($row = mysql_fetch_assoc($result)){
if( !isset($vorige_indexletter) OR strtoupper(substr($row['auteur'], 0, 1)) !== $vorige_indexletter)
{
echo '<h5>' . strtoupper(substr($deze_rij, 0, 1)) . '</h5>';
}
?><b><?echo $row['auteur'];?></b><br/><?
$vorige_indexletter = strtoupper(substr($deze_rij['auteur'], 0, 1));
}
?>
if (!function_exists("dbConnect")) {
include 'database/config.php';
include 'database/lib.php';
}
$db = dbConnect();
$result = mysql_query("SELECT * FROM `bestanden` ORDER BY auteur ASC LIMIT 10000");
$num_rows = mysql_num_rows($result);
while($row = mysql_fetch_assoc($result)){
if( !isset($vorige_indexletter) OR strtoupper(substr($row['auteur'], 0, 1)) !== $vorige_indexletter)
{
echo '<h5>' . strtoupper(substr($deze_rij, 0, 1)) . '</h5>';
}
?><b><?echo $row['auteur'];?></b><br/><?
$vorige_indexletter = strtoupper(substr($deze_rij['auteur'], 0, 1));
}
?>
$deze_rij word nergens aangemaakt (moet $row zijn) en anders moet je PHP foutmeldingen even aanzetten, en maak even een foutafhandeling voor je query
Het werkt nu perfect dank je wel voor de hulp :)