brown2005 Posted May 13, 2009 Share Posted May 13, 2009 http://www.allinthissite.co.uk/ I have done the code to show you the layout I am looking for. What I want to do is take some results from mysql; topics_name and use this to set the layout as seen on the website above. It will only display the letter if there is a result in the table that has that letter, so topics_name first letter sets this header. any help please on the code I would need to achieve this layout. Thanks in advance. Quote Link to comment https://forums.phpfreaks.com/topic/157945-a-to-z-list/ Share on other sites More sharing options...
JonnoTheDev Posted May 13, 2009 Share Posted May 13, 2009 This may take some processing becase of the number of queries needed. I suggest displaying all letters even if there a 0 rows. I would then display 0 results found after a search. However here is how you would do the initial question: <?php $range = range('a','z'); for($x = 0; $x < count($range); $x++) { $result = mysql_query("SELECT id FROM table WHERE topics_name LIKE '".$range[$x]."%'"); // destroy letter if no results found if(!mysql_num_rows($result)) { unset($range[$x]); } } // now loop your letters out foreach($range as $letter) { print $letter."<br />"; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/157945-a-to-z-list/#findComment-833136 Share on other sites More sharing options...
GingerRobot Posted May 13, 2009 Share Posted May 13, 2009 26 queries? Sounds nasty. Think i'd go with something like: <?php $alphabet = range('a','z'); $lettersFound = array[]; $sql = "SELECT SUBSTRING(`field`,0,1) AS firstLetter GROUP BY firstLetter"; $result = mysql_query($sql) or trigger_error(mysql_error()); while($row = mysql_fetch_assoc($result){ $lettersFound[] = $row['firstLetter']; } foreach($alphabet as $letter){ if(in_array($letter,$lettersFound){ //there are fields with this starting letter, so display a link }else{ //no fields starting with this letter, just display the letter with no link } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/157945-a-to-z-list/#findComment-833172 Share on other sites More sharing options...
JonnoTheDev Posted May 13, 2009 Share Posted May 13, 2009 agreed, nice solution Quote Link to comment https://forums.phpfreaks.com/topic/157945-a-to-z-list/#findComment-833308 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.