Jump to content

[resolved] Alphabet sorting?


wwfc_barmy_army

Recommended Posts

Hello.

I am still reasonably new to PHP and I currently have this code to return artists name from a database:

[code=php:0]    <?php
if ($artist == ""){
print "Please select an artist:<br/>";
$result = @mysql_query("SELECT * FROM artist ORDER BY name ASC");
while ($row = mysql_fetch_assoc($result)) {
echo "<a href=index.php?artist=".$row[artist_id].">".$row[name]."</a><br/>";
}
}
?>[/code]

I am trying to figure out if there is a way so do this; the results are returned in alphabetical order is it possible to get them sorted under each letter without doing a query for each letter, so it lists like:

[b]A[/b]
Aone
Atwo

[b]B[/b]
Bone
Btwo

... Etc etc...

Can anyone offer any advice/code/links?

Thanks guys! :)
Link to comment
https://forums.phpfreaks.com/topic/26389-resolved-alphabet-sorting/
Share on other sites

you could use substr to find the first letter and then keep printing the results until the letter changes then print B (or whatever letter it is) and continue.

[code=php:0]
$letter = "";

$result = @mysql_query("SELECT * FROM artist ORDER BY name ASC");
while ($row = mysql_fetch_assoc($result)) {
    if($letter != substr($row['name'],0,1) {
        echo substr($row['name'],0,1);
    }
    echo "<a href=index.php?artist=".$row[artist_id].">".$row[name]."</a><br/>";
}
?>
[/code]

theres some pretty basci code i just whipped up you'll want to change it as you need :)
[quote author=ProjectFear link=topic=114075.msg464155#msg464155 date=1162892620]
your code there isnt even changing $letter. shouldn't you change it to the new one so it can check for the next letter?
[/quote]

Any ideas how i would do this too?

Thanks.
[quote]Any ideas how i would do this too?[/quote]

Think?

[code]
<?php

$letter = "";

$result = @mysql_query("SELECT * FROM artist ORDER BY name ASC");
while ($row = mysql_fetch_assoc($result)) {
    if($letter != substr($row['name'],0,1) {
        echo substr($row['name'],0,1);
        $letter = substr($row['name'],0,1);
    }
    echo "<a href=index.php?artist=".$row['artist_id'].">".$row['name']."</a><br/>";
}
?>
[/code]

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.