Hi People,
I would like some assistance on the following scenario.
I have to pull out all records for a particular userid (easy enough) and
then only show those entries where the follwing occurs.
These records from the table will contain either an entry in the
services_type field or the non_services_type field. What I need to do is
show only those where the number of consecutive records that contain an
entry in the non_services_type field is greater than or equal to 3
so example:-
record 1 contains an entry in non_services_type
record 2 contains an entry in services_type
record 3 contains an entry in non_services_type
record 4 contains an entry in non_services_type
record 5 contains an entry in non_services_type
record 6 contains an entry in services_type
so I would need to display records 3,4,5 only
Can anyone assist me with this?
Cheers,
Shannon
When you do your while ($row = mysql_fetch_assoc($result)) { ... } you will need to keep a list of consecutive records.
Try this:
<?php
$i = 0;
$j = 0;
while ($row = mysql_fetch_assoc($result)) {
$current_string = ( !empty($row['non_services_type']) ) ? 'non_services_type' : 'services_type' ;
if ($previous_string == $current_string) {
$i++;
if ($i >= 3) {
$records[$j] = $row;
$j++;
}
} else {
$i = 0;
$previous_string = $current_string;
}
}
?>
Then simply echo $records. This may have some bugs to iron out, but this is a way to get the job done, please reply if you have found a better way.