wwfc_barmy_army Posted November 23, 2006 Share Posted November 23, 2006 Hi Guys.I have this code:[code=php:0]$result = @mysql_query("SELECT * FROM t_50 ORDER BY name ASC");while ($row = mysql_fetch_assoc($result)) { if($letter != substr($row['name'],0,1)) { print "<p/><b>"; echo substr($row['name'],0,1); print "</b>"; $letter = substr($row['name'],0,1); } echo "<br/><a href=index.php?movie=".$row['id'].">".$row['name']."</a>";}[/code]This returns the results and sorts them into alphabeticaly order under each alphabet header prefectly but i have a couple of questions:1. How would i go about adding 'anchor link' to each letter? Can anyone give me any advice?2. Would it be possible to include a piece of code (advertisement) every like 4 headers? If so how would i go about this?I'm still reasonably new to php so i have many questions :PThanks! Quote Link to comment Share on other sites More sharing options...
oracle259 Posted November 23, 2006 Share Posted November 23, 2006 try this[code]$result = @mysql_query("SELECT * FROM t_50 ORDER BY name ASC"); $adcount = 0;while ($row = mysql_fetch_assoc($result)) { if($letter != substr($row['name'],0,1)) { $letter= substr($row['name'],0,1); print "<p/><b>"; echo "<a href=#>$letter</a>"; print "</b>"; }else {if ($adcount >=4) { echo "<br/><a href=index.php?movie=".$row['id'].">".$row['name']."</a>"; echo "Display ad"; $adcount = 0;} else { echo "<br/><a href=index.php?movie=".$row['id'].">".$row['name']."</a>"; $adcount= $adcount+1; } }}[/code] Quote Link to comment Share on other sites More sharing options...
wwfc_barmy_army Posted November 23, 2006 Author Share Posted November 23, 2006 Hello. Thanks for your reply! :) I can see what you have done with the ad problem but i can't quite see where the anchor links comes from, i see you put link for each letter linking to '#' but i want it so that the letters are not a link, and the links A B C D ..etc... are at the top and they are the links.Thanks for any advice. Quote Link to comment Share on other sites More sharing options...
oracle259 Posted November 23, 2006 Share Posted November 23, 2006 ok try this[code]$result = @mysql_query("SELECT * FROM t_50 ORDER BY name ASC"); $adcount = 0;while ($row = mysql_fetch_assoc($result)) { $letter = strtoupper(substr($row['name'],0,1)); if ($letter != $header) { print "<p/><b><u>"; echo "<a href=#>$letter</a>"; print "</u></b></p>"; }if ($adcount <4) { echo "<br/><a href=index.php?movie=".$row['id'].">".$row['name']."</a>"; $adcount= $adcount+1;} else { echo "<br/><a href=index.php?movie=".$row['id'].">".$row['name']."</a>"; echo "Display ad"; $adcount = 0; } $header = $letter;}[/code] Quote Link to comment Share on other sites More sharing options...
Barand Posted November 23, 2006 Share Posted November 23, 2006 Here's an example[code]<?php$letters = range('A','Z');foreach ($letters as $c) { echo "<a href='#$c'>$c</a> ";}foreach ($letters as $c) { echo "<a name='$c'><h3>$c</h3></a>"; for ($i=0; $i<5; $i++) { echo "<p>$i</p>"; }}?>[/code] Quote Link to comment Share on other sites More sharing options...
wwfc_barmy_army Posted November 24, 2006 Author Share Posted November 24, 2006 Hi Guys. Ok, i'm going to work on the ad code every 4 Alphabet letters. I currently have this code:[code=php:0]$result = @mysql_query("SELECT * FROM t_50 ORDER BY name ASC");while ($row = mysql_fetch_assoc($result)) { if($letter != substr($row['name'],0,1)) { print "<p/><b>"; echo substr($row['name'],0,1); print "</b>"; $letter = substr($row['name'],0,1); $adcount= $adcount+1; } echo "<br/><a href=index.php?movie=".$row['id'].">".$row['name']."</a>"; if($adcount == 4) { echo "Display ad"; $adcount = 0; }}[/code]This shows the ad code every 4 alphabet letters but i can't make it so it does it at the end of all the records instead of after the first one. How can i arrange it?Thanks. Quote Link to comment Share on other sites More sharing options...
Barand Posted November 24, 2006 Share Posted November 24, 2006 OK, try[code]<?php$letters = range('A','Z');foreach ($letters as $c) { echo "<a href='#$c'>$c</a> ";}$result = @mysql_query("SELECT id, name FROM t_50 ORDER BY name ASC") or die(mysql_error());$lastLetter = '';$adcount = 0;while (list($id, $name)=mysql_fetch_row($result)) { $c = strtoupper($name{0}); // get first letter of name if ($c != $lastLetter) { if ($adcount > 0 && $adcount%4 == 0) { echo '<hr>Advert<hr>'; } echo "<a name='$c'><h3>$c</h3></a>"; $adcount++; $lastLetter = $c; } echo "<a href='index.php?movie=$id'>$name</a><br/>"; }?>[/code] Quote Link to comment Share on other sites More sharing options...
wwfc_barmy_army Posted November 24, 2006 Author Share Posted November 24, 2006 It's close but i need to include the link in there too. How do i do that with the code?Thanks a lot! :) Quote Link to comment Share on other sites More sharing options...
Barand Posted November 24, 2006 Share Posted November 24, 2006 Edited prev post to include link Quote Link to comment Share on other sites More sharing options...
wwfc_barmy_army Posted November 24, 2006 Author Share Posted November 24, 2006 Ahhh. Spot on. Cheers mate :) 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.