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
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 :)
Link to comment
Share on other sites

[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]
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.