• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 410
  • Last Modified:

php apply different class to last result...

is there any way of applying a different result to the last result in this code?

    <?php
$result = mysql_query("SELECT * FROM news WHERE published='yes' AND section='competition' ORDER BY date DESC LIMIT 4");
while($row = mysql_fetch_array($result))
  {$myDate = $row['date'];$day = date("d", strtotime($myDate));$month = date("m", strtotime($myDate));$year = date("Y", strtotime($myDate));?>
  <div class="item-220 item-short">
    <div class="item-img">
      <div class="item-220-hover"></div>
      <a href="/skiing-snowboarding-news/<?php echo "". $row['filename'] ."_". $row['id'] .""; ?>.html"><img src="/graphics/img/skiing-snowboarding-news/<?php echo "". $row['image'] .""; ?>" alt="<?php echo "". $row['image_alt'] .""; ?>" width="218" height="218" border="0" /></a></div>
    <div class="item-details">
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td class="date"><img src="/graphics/img/date/day/<?php echo "$day"; ?>.gif" width="35" height="25" alt="<?php echo "$day"; ?>" /><img src="/graphics/img/date/month/<?php echo "$month"; ?>.gif" width="35" height="10" alt="<?php echo "$month"; ?>" /><img src="/graphics/img/date/year/<?php echo "$year"; ?>.gif" width="35" height="10" alt="<?php echo "$year"; ?>" /></td>
          <td class="title"><a href="/skiing-snowboarding-news/<?php echo "". $row['filename'] ."_". $row['id'] .""; ?>.html"><?php echo "". $row['title'] .""; ?></a></td>
        </tr>
        <tr>
          <td colspan="2" class="description"><?php echo "". $row['description'] .""; ?></td>
        </tr>
      </table>
    </div>
  </div>
  <?php }?>
0
maccaj51
Asked:
maccaj51
  • 2
  • 2
1 Solution
 
Chris StanyonCommented:
You could introduce an incremental counter in the loop and check it's value against the number of records returned by your query.



$NumOfRecords = mysql_num_rows($result);
$counter = 1;

while ($row = mysql_return_array($result))
{
   if ($counter == $NumOfRecords) {
      echo "This is the last record";
   }

   $counter++;
}

Open in new window

0
 
maccaj51Author Commented:
Thanks for your reply... dont quite understand it... i need to assign a different class to the last result?? would that do this?
0
 
Chris StanyonCommented:
You have 7 different classes within each iteration. Not sure which one you want to change.

Inside your loop, where you echo all the DIVs, you would need to check to see if you're in the last record. If you are, then echo a different class.

In the code below, the DIV will have a class of "NormalClass" unless it's the last record - then it will have a class of "LastRecordClass"

FYI:  <?=Something?> is the same as <?php echo Something;?>.




<?php
$NumOfRecords = mysql_num_rows($result);
$counter = 1;

while ($row = mysql_return_array($result)):
?>

<div class="<?=($counter==$NumOfRecords) ? "LastRecordClass" : "NormalClass"?>">
   ...SomeContent...
</div>

<?php
$counter++;
endwhile;
?>

Open in new window

0
 
maccaj51Author Commented:
Helped alot!
0

Featured Post

[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now