wwfc_barmy_army Posted November 6, 2006 Share Posted November 6, 2006 Hello.I am still reasonably new to PHP and I currently have this code to return artists name from a database:[code=php:0] <?phpif ($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]AoneAtwo[b]B[/b]BoneBtwo... Etc etc...Can anyone offer any advice/code/links?Thanks guys! :) Quote Link to comment Share on other sites More sharing options...
Mattyspatty Posted November 7, 2006 Share Posted November 7, 2006 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 Link to comment Share on other sites More sharing options...
JasonLewis Posted November 7, 2006 Share Posted November 7, 2006 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 Link to comment Share on other sites More sharing options...
wwfc_barmy_army Posted November 7, 2006 Author Share Posted November 7, 2006 [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 Link to comment Share on other sites More sharing options...
trq Posted November 7, 2006 Share Posted November 7, 2006 [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] Quote Link to comment Share on other sites More sharing options...
wwfc_barmy_army Posted November 7, 2006 Author Share Posted November 7, 2006 I'm getting this error:Parse error: parse error, unexpected '{' in C:\public_html\dmm\index.php on line 69Line 69 being:[code] if($letter != substr($row['name'],0,1) {[/code] Quote Link to comment Share on other sites More sharing options...
trq Posted November 7, 2006 Share Posted November 7, 2006 You missing a ) Quote Link to comment Share on other sites More sharing options...
wwfc_barmy_army Posted November 7, 2006 Author Share Posted November 7, 2006 Thanks guys ;D Had to change a few more things to get it to look right but it's spot on :) Quote Link to comment Share on other sites More sharing options...
trq Posted November 7, 2006 Share Posted November 7, 2006 Good. Dont forget to mark your thread resolved. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.