I am doing a select on the database and some time it returns me 10 records and sometimes 1000, depending on the criteria of search. What I want is a drop down that will have break after every 30 records. something like this
<select id="dd" >
<option value="0">1-30</option>
<option value="30">31-60</option>
<option value="60">61-90</option>
<option value="91">91-120</option>
</select>
How do I do that in PHP dynamically?
Here's my take on it:
echo '<select id="dd">';
$j = 0;
for($i=0;$i<$numResults;$i++)
{
if($i%30==0)
echo '<option value="'.$j.'">'.($j+1).'-'.($j+=30).'</option>';
}
echo '</select>';
for $numResults == 130 output would be:
<select id="dd">
<option value="0">1-30</option>
<option value="30">31-60</option>
<option value="60">61-90</option>
<option value="90">91-120</option>
<option value="120">121-150</option>
</select>
Maybe something along the lines of this:
<select id="dd" >
<?php
$rows = mysql_num_rows($result);
for($count=0;$count<$rows;$count++)
{
if($count % 30 == 0)
{
$end = $count+30;
if($end > $rows)
$end = $rows;
echo '<option value="'.$count.'">'.$count.'-'.$end.'</option>';
}
}
?>
</select>
This is untested.
Try this :)
<select id="dd" >
<?php
$start = 0;
$end = mysql_num_rows($resultquery);
while ( ($start+30) < $end || ($end-$start)>0)
echo "<option value=\"". $start . "\">". $start ."-" . ($start+=30) . "</option>";
?>
</select>
if $end = 95;
output will be:
<select id="dd" >
<option value="0">0-30</option>
<option value="30">30-60</option>
<option value="60">60-90</option>
<option value="90">90-120</option>
</select>