database lijst op alfabet met header

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco Hendriks

Marco Hendriks

29/04/2013 12:44:52
Quote Anchor link
He,

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?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$result = mysql_query("SELECT * FROM `bestanden` ORDER BY auteur ASC LIMIT 10000");
$num_rows = mysql_num_rows($result);
 
PHP hulp

PHP hulp

25/04/2024 10:27:11
 
Eddy E

Eddy E

29/04/2013 13:29:07
Quote Anchor link
Zoiets bij je while-loop.
Let op de variabelen, die moet ik ook maar gokken omdat je geen code meegeeft als voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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));
    }

?>
 
Joakim Broden

Joakim Broden

29/04/2013 13:38:38
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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]);
    }

?>
Gewijzigd op 29/04/2013 13:42:21 door Joakim Broden
 
Marco Hendriks

Marco Hendriks

29/04/2013 13:43:00
Quote Anchor link
Ik heb de code toegevoegd en aangepast maar ik krijg nu wit regels en geen letter wat heb ik verkeerd gedaan?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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));            
      }

?>
 
Joakim Broden

Joakim Broden

29/04/2013 13:46:09
Quote Anchor link
$deze_rij word nergens aangemaakt (moet $row zijn) en anders moet je PHP foutmeldingen even aanzetten, en maak even een foutafhandeling voor je query
 
Eddy E

Eddy E

29/04/2013 14:01:18
Quote Anchor link
En dit is niet handig:

?><b><?php

Doe dan dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo '<b>'.$row['auteur'].'</b><br>';
Gewijzigd op 29/04/2013 14:01:39 door Eddy E
 
Marco Hendriks

Marco Hendriks

29/04/2013 14:09:54
Quote Anchor link
Het werkt nu perfect dank je wel voor de hulp :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.