Мне удалось создать запрос, который соответствует моим потребностям. Но теперь я сталкиваюсь с проблемами, когда при текущем способе отображения результатов запрос повторяет каждый результат дважды. Как я могу заставить это работать правильно, где это показывает это однажды.
Код:
$sql = "SELECT DISTINCT contacts.contact_id, user_accounts.full_name,
contact_notes.note_name, contact_notes.type, contact_notes.note_id,
contact_posts.why_post, contact_posts.type, contact_posts.post_id
FROM contacts, user_accounts, contact_notes, contact_posts
WHERE (contacts.system_id = '$sid' AND contacts.contact_id =
user_accounts.system_id AND contact_notes.user_allowed = '$everybody' AND
contact_posts.user_allowed = '$everybody') OR (contacts.contact_id = '$sid'
AND contacts.system_id = user_accounts.system_id AND contact_notes.user_allowed
= '$everybody' AND contact_posts.user_allowed = '$everybody')
LIMIT $startrow, 20";
$query = mysql_query($sql) or die ("Error: ".mysql_error());
$result = mysql_query($sql);
if ($result == "")
{
echo "";
}
echo "";
$rows = mysql_num_rows($result);
if($rows == 0)
{
print("");
}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{
$noteid = htmlspecialchars($row['note_id']);
$note_title = htmlspecialchars($row['note_name']);
$postid = htmlspecialchars($row['post_id']);
$postreason = htmlspecialchars($row['why_post']);
$datetimeadded = htmlspecialchars($row['just_date']);
print("<br /> <br />$note_title - $noteid <br /><br />$postreason - $postid");
}
}
Вместо того, чтобы использовать mysql_fetch_array()
использование mysql_fetch_assoc()
. По умолчанию, mysql_fetch_array()
вернет массив с обоими ассоциативными а также числовые индексы, которые приведут к тому, что вы увидите результаты дважды.
Других решений пока нет …