В моем блоге три таблицы: одна для пользователей, одна для комментариев и одна для тем.
Не все извлеченные записи отражаются в PHP, и я думаю, что это может быть связано со значениями NULL, например, на моей странице списка участников следующий запрос получает данные о четырех пользователях:
SELECT COUNT(Topics.MemberID) AS NumberOfTopics, Users.id,
Users.FirstName, Users.LastName, Users.Joined
FROM Users LEFT JOIN Topics ON Users.id=Topics.MemberID GROUP BY Topics.MemberID
Однако, если последние пользователи в конце списка не имеют тем (NumberOfTopics = 0), они не представляются.
Если у пользователя количество сообщений 0, но в следующей записи количество сообщений не равно 0, отображается пользователь. Почему?
Вот полный код:
$result = mysql_query("SELECT COUNT(Topics.MemberID) AS NumberOfTopics, ".
"Users.id, Users.FirstName, Users.LastName, Users.Joined ".
"FROM Users LEFT JOIN Topics ON Users.id=Topics.MemberID ".
"GROUP BY Topics.MemberID")
or die("Query failed with error: ".mysql_error());
echo "<table border='1'>
<tr>
<th>Name</th>
<th>Joined</th>
<th>No. of posts</th>
</tr>";
while($row = mysql_fetch_assoc($result))
{
echo "<tr>";
echo "<td><a href='/neuro/profile.php?userid=$row[id]'>" .
$row['FirstName'] . " " . $row['LastName'] . "</a></td>";
echo "<td>" . $row['Joined'] . "</td>";
echo "<td>" . $row['NumberOfTopics'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
Спасибо за чтение!