0

Hiya All,

Not sure if i should be putting thi up on the SQL section but i think the problem lies in the PHP part of my code.

This is what i've got. I'm counting the number of times a category shows up in my database returning the name of that category with the count next to it.
I'm printing the first 5 results individually then putting the rest into a dropdown box (order by count)

My problem is there is a category missing (schools__30) which would be the 6th result in line i.e. the first to appear in the dropdow box.
The code is below any help much appreciated,

$i=1;

$sql = "SELECT Company.Classification, COUNT(DISTINCT Company.Name) as 'Number'
FROM Company WHERE Company.Classification<>'' GROUP BY Company.Classification ORDER BY Number DESC";
$result = mysql_query($sql);


while(($nt=mysql_fetch_array($result))&&($i<=5))
  {
  echo "<a href='http://www." . $nt['Classification'] . ".html' target='_blank'>" . $nt[Classification] . "____" . $nt
  [Number] . "</a><br /> ";
  $i++;
  }
 
echo "<select onchange='window.location.href=this.options[this.selectedIndex].value'>";

while($nt=mysql_fetch_array($result))
 {
echo "<option value='http://www." . $nt[Classification] . ".html'>" . $nt[Classification] . "____" . $nt[Number] . "</option> ";
 }

echo "</select>";
3
Contributors
4
Replies
8
Views
7 Years
Discussion Span
Last Post by baseballfury
0

I'm about 90% sure it's because your first while loop gets the 6th row before you break out of the loop and doesn't display it. The only way I can think of fixing it is to to break at the end of it:

if($i == 5){
break;
}
$i++;

Edited by Encrypted: n/a

0

try below code on line 16 (above 2nd while loop)

mysql_data_seek($result, 0);

Edited by sam023: n/a

0

encypted i thought i'd be something to do with exiting the loop. Will give both suggestions a go and let you know,

Cheers.

while you're there, do you know if there is a way i can ORDER results 6 and upwards by Name as apposed to Number byt still keep the seperate top 5 as they are.
If not i'll just harcode it no biggy.

Tom.

0

duh stupid me just realised i put (while <=5) where as i should be just '< 5' because the count is reaching 5 and still adding 1.

thanks guys you opened my tired eyes there.

Tom.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.