query not displaying all results

I have a database with 3 tables. One table contains people, the other table contains categories and the third table is the many to many relationship table. My php file is a report showing all the people in each category. For some reason, my query is not displaying the first record in each category and I can’t figure out how to fix it.

Code:

[php]<?php require_once(‘Connections/meritBadges.php’);
$result = mysql_query(‘SELECT id, badge_name FROM meritbadgestable ORDER BY badge_name’);

while ($row = mysql_fetch_array($result)) {
$badgenumber = $row[‘id’];

$badgename = mysql_query(“SELECT id, badge_name FROM meritbadgestable WHERE id=$badgenumber”);
while($badge = mysql_fetch_array($badgename))

{ $badge_name = $badge[‘badge_name’];
}

$counselors = mysql_query(“SELECT id, firstname, lastname, counselorid, meritbadgeid FROM counselorstable, meritbadgetocounselortable WHERE id=counselorid AND meritbadgeid=’$badgenumber’ ORDER BY lastname”);

$counselor = mysql_fetch_array($counselors);

if(empty($counselor)){echo '

Merit Badge: ’ . $badge_name . ‘

There are no counselors for this merit badge.

’;
}
else {echo '

Merit Badge: ’ . $badge_name . ’

<table width="950" border=1 cellpadding="2" cellspacing="0" class="counselorstable">
<tr id="tabletop">
	<td width="162" bgcolor="#000000">ID</td>
    <td width="160" bgcolor="#000000">Name</td>
</tr>';}

while ($counselor = mysql_fetch_array($counselors)) {
echo “

\n”;
$id = htmlspecialchars($counselor[‘id’]);
$firstname = htmlspecialchars($counselor[‘firstname’]);
$lastname = htmlspecialchars($counselor[‘lastname’]);

echo “

$id\n”;
echo “$firstname $lastname\n”;
echo “\n”;
}

echo ‘
’;

}
?>[/php]

Have you tried using your SELECT string in mySQL to see what you get from the source?

Also, mysql_commands are depricated… Use mysqli_ or PDO.

Sponsor our Newsletter | Privacy Policy | Terms of Service