我有一个包含3个表的数据库。一个表包含人,另一个表包含类别,第三个表是多对多关系表。我的php文件是一个报告,显示每个类别中的所有人。出于某种原因,我的查询不显示每个类别中的第一条记录,我无法弄清楚如何解决它。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 '<h2>Merit Badge: ' . $badge_name . '</h2><p class="counselortable">There are no counselors for this merit badge.</p>';
}
else
{
echo '<h2>Merit Badge: ' . $badge_name . '</h2>
<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 "<tr valign='top'>\n";
$id = htmlspecialchars($counselor['id']);
$firstname = htmlspecialchars($counselor['firstname']);
$lastname = htmlspecialchars($counselor['lastname']);
echo "<td>$id</td>\n";
echo "<td>$firstname $lastname</td>\n";
echo "</tr>\n";
}
echo '</table><br />';
}
?>
你在说什么查询?有三个显示(顺便说一句可能会合并成一个单一的查询)。我没有看到这些查询中显示的任何人员或类别表格。请更好地解释。 –
先看看JOIN。 – Strawberry