Maak een query met een order by.
Dan maak je een var aan, en in die var zet je telkens van het woord de eerste letter.
Zo kun je kijken of je alweer bij een nieuwe letter bent of niet.
<?PHP
$sQuery = "SELECT * FROM <tbl> ORDER BY <veld> ASC";
$rResult = MySQL_Query($sQuery) or die(MySQL_Error());
$sLetter = '';
while($aFetch = MySQL_Fetch_Assoc($rResult))
{
if($sLetter != subStr($aFetch['veld'], 0, 1))
{
// volgende letter
$sLetter = subStr($aFetchVeld, 0, 1);
}
// nog steeds dezelfde letter
}
<?PHP
$sQuery="SELECT * FROM <tbl> ORDER BY <veld> ASC";
//Array aanmaken
$aCharacter = Array();
//Je maakt een query die alle brandnames pakt
$qSelect = Mysql_Query("SELECT brandname FROM brands ORDER BY brandname");
//Die fetch je
While($qBra = Mysql_Fetch_Assoc($qSelect))
{
//Controleer de eerste karakter, indien dit een nummer is geef je NUMERIC terug, andere de letter
$sFirstCharacter = Is_Numeric($qBra['brandname']{1}) ? 'NUMERIC' : $qBra['brandnam']{0};
//Zet het in de array, als key gef je de eerste karakter
$aCharacter[$sFirstCharacter][] = $qBra['brandname'];
}
//For-loop om alle alfabet letters te krijgen
For($sAlpha = 'A'; $sAlpha != 'AA'; $sAlpha)
{
//For-loop om alle brandnames van een bepaalde letter te krijgen
For($iAlpha = 0; $iAlpha < Count($aCharacter[$sAlpha]); $iAlpha)
{
//De brandname weergeven
echo $aCharacter[$sAlpha][$iAlpha];
}
}
//For-loop om alle brandnames die beginnen met een getal te pakken
For($iNumeric = 0; $iNumeric < Count($aCharacter['NUMERIC']); $iNumeric++)
{
//De brandname weergeven
echo $aCharacter['NUMERIC'][$iNumeric];
}
Dat is jammer, want nu gebruik je echt absurd veel querys. Wat ook kan is dat je een query uitvoert met ORDER BY brandname, en controleren of de eerste karakter hetzelfde is met de vorige.
$sPreviousFirstCharacter = 'NUMERIC';
//Je maakt een query die alle brandnames pakt
$qSelect = Mysql_Query("SELECT brandname FROM brands ORDER BY brandname");
//Die fetch je
While($qBra = Mysql_Fetch_Assoc($qSelect))
{
$sFirstCharacter = Is_Numeric($qBra['brandname']{1}) ? 'NUMERIC' : $qBra['brandnam']{0};
If($sFirstCharacter != $sPreviousFirstCharacter)
{
//Vorige html tabel afsluiten, nieuwe openen.
}
$sPreviousFirstCharacter = $sFirstCharacter;
}
$sPreviousFirstCharacter='NUMERIC';
//Je maakt een query die alle brandnames pakt
$qSelect=Mysql_Query("SELECT brandname FROM brands ORDER BY brandname");