Hey,
I am trying to only show a dotted border on this page, but not show the border it the result is the last row.
If you look at this page:
http://www.glofamily.com/glo/fitness-courses/
You can see 2 courses on Monday and Wednesday, but on Monday there are 2 courses and i don’t want to show the bottom border on the last course…
This is my code, is there a way i can check to see if the row is the last one and based on that show/don’t show a border?
<? $courses = Course::selectByCurrentWeek('3'); ?>
<table>
<tr style="height:40px">
<th class="paddingleft10px">Class</th>
<th class="paddingleft10px">Time</th>
<th class="paddingleft10px">Location</th>
</tr>
<?
$curdate = "";
while($row = mysql_fetch_array($courses)){
$date = $row['date'];
$date = strtotime($date);
$day = date('l',$date);
$time = date("H:i",$date);
$startdate = $row['startdate'];
$startdate = strtotime($startdate);
$starttime = date("H:i",$startdate);
$enddate = $row['enddate'];
$enddate = strtotime($enddate);
$endtime = date("H:i",$enddate);
if ($curdate != $day) {
echo "<tr class='day'><th style='padding-left:10px; width:400px'>$day</th><th> </th><th style='width:140px'> </th></tr>";
$curdate = $day;
}
if ($curdate != $day) {
echo "<tr class='day'><th style='padding-left:10px; width:400px'>$day</th><th> </th><th style='width:140px'> </th></tr>";
$curdate = $day;
}
echo "<tr><td><a href=\\"".$_SERVER['SERVER_NAME'].$sitename."view-courses/?ID=$row[ID]&?=$row[ID]\\">".$row['title']."</a></td><td>$starttime - $endtime</td><td>$row[location]</td></tr>";
}
?>
</table>
Any ideas?
Thanks again
Hey,
Thanks for your reply. Can you maybe show an example of how i could do this with the code i have if possible?
Thanks again
How about something like this? Note: for the purposes of this I’ve added an extra column from the database called ‘day’ which would be yyyy-mm-dd
<?php
$courses = Course::selectByCurrentWeek('3'); ?>
<table>
<tr style="height:40px">
<th class="paddingleft10px">Class</th>
<th class="paddingleft10px">Time</th>
<th class="paddingleft10px">Location</th>
</tr>
<?php
$coursedata = array();
while($row = mysql_fetch_array($courses)){
$coursedata[$row['day']][] = array('date' => $row['date'], 'id' => $row['id'], 'title' => $row['title'], 'location' => $row['location'], 'startdate' => $row['startdate'], 'enddate' => $row['enddate']);
}
foreach ($coursedata AS $day => $value) {
$date = $day;
$date = strtotime($date);
$day = date('l',$date);
echo "<tr class='day'><th style='padding-left:10px; width:400px'>$day</th><th> </th><th style='width:140px'> </th></tr>";
$x=0; foreach ($value AS $k => $v) { $x++;
$time = date("H:i",$v['date']);
$startdate = $v['startdate'];
$startdate = strtotime($startdate);
$starttime = date("H:i",$startdate);
$enddate = $v['enddate'];
$enddate = strtotime($enddate);
$endtime = date("H:i",$enddate);
echo "<tr";
if (sizeof($value) == $x) { echo ' class="noborder"'; }
echo "><td><a href=\\"".$_SERVER['SERVER_NAME'].$sitename."view-courses/?ID=".$v['id']."&?=".$v['id']."\\">".$v['title']."</a></td><td>".$v['starttime']." - ".$v['endtime']."</td><td>".$v['location']."</td></tr>";
}
}
?>
</table>
I should also add I haven’t tested this 
Hi,
This might not be the best way but you could iterate through the sql results and create an array of the courses, eg:
Array
(
[Monday] => Array
(
[0] => Array
(
[Name] => This is a test
[Time] => 04:15 - 00:00
[Location] => Somewhere
)
[1] => Array
(
[Name] => This is a test 2
[Time] => 04:15 - 00:00
[Location] => Somewhere
)
)
[Wednesday] => Array
(
[0] => Array
(
[Name] => This is a test
[Time] => 03:20 - 00:00
[Location] => Somewhere
)
)
)
Then use sizeof($arrayname[‘Monday’]) to get the number of courses for each day and on the last one, remove the border.
But as I say there may be a better way…
Sorry i have just realized i have this line twice:
if ($curdate != $day) {
echo "<tr class='day'><th style='padding-left:10px; width:400px'>$day</th><th> </th><th style='width:140px'> </th></tr>";
$curdate = $day;
}
Ignore the second repeated lines. I basically want to show a bottom border only if the row is not the last row, so if i have 3 rows returned, i want to show a bottom border on the first and second but not the third.
I set the border in the css like so:
#courses-table td{padding:4px 9px 6px 12px;border-bottom:1px dotted;}
Any ideas how i can do this?