0

我的情况是一个包含联系人姓名的页面,它与当前用户最常访问的 5 个联系人相呼应。我这样订购它们:

$name_a=mysql_query(SELECT * FROM contacts WHERE email='$semail' ORDER BY frequency 
DESC);
$name_b=mysql_query(SELECT * FROM contacts WHERE email='$semail' ORDER BY frequency           
DESC OFFSET1);

当成员单击与此名称关联的提交按钮时,它会将 1 添加到该用户的“频率”列。像这样:

UPDATE contacts SET frequency = frequency + 1 WHERE email='$semail' AND      
contact_a='$a[contact_a]'

当两个成员具有相同的频率值时会出现问题,因为当单击其中一个名称时,它会添加 1 并更改顺序,因此其他信息会在页面刷新后出现。例如,如果 'tom' 和 'bob' 的频率值都是 10,那么首先回显 tom(因为他的名字首先出现在数据库中)然后是 bob,如下所示:

if ($name_a = mysql_fetch_assoc($name_a)) {echo $name_a['firstname'];} // eg. tom
if ($name_b = mysql_fetch_assoc($name_b)) {echo $name_b['firstname'];} // eg. bob

然后,如果有人单击 bob 的按钮,他的频率值变为 11,当页面刷新时,他变为 $name_a 并且来自单击提交按钮的其他信息将为 tom。希望我已经解释过了。谢谢

4

1 回答 1

0

...ORDER BY frequency, name,所以在任何给定的频率内,名称都是按字母顺序排列的,而不是它们的自然排序顺序?

于 2012-10-16T21:28:04.960 回答