如何防止此查询两次打印相同的结果?

时间:2012-05-12 00:34:45

标签: php mysql sql repeat

我设法创建了一个符合我需要的查询。但是现在我遇到的问题是,鉴于当前显示结果的方式,查询会重复两次每个结果。如何让它在显示一次的地方正常工作。

代码:

$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");
}

}

1 个答案:

答案 0 :(得分:2)

而不是使用mysql_fetch_array()使用mysql_fetch_assoc()。默认情况下,mysql_fetch_array()将返回一个包含关联数字索引的数组,这将导致您看到两次结果。