我对此有点麻烦,我发现如何从多个列中获取唯一值,我知道如何正常排序,但我似乎无法将两者混合
原始的sql语句在这里:
$sql="SELECT DISTINCT UserID, UserIP FROM Visits WHERE PageID='".$_GET['p']."'";
它只获取两个值都是唯一的第一个实例,因此执行' mysql_numrows'事情不起作用。
这是从fetch数组循环中,它可以计算出现的罚款,但在那时它排序太迟了
$sql5="SELECT Date, VisitID FROM Visits WHERE PageID='".$_GET['p']."' AND UserID='".$userid."' AND UserIP='".$userip."' ORDER BY Date";
$result5 = mysql_query($sql5);
$num5 = mysql_numrows($result5);
基本上,它应该根据两列获得唯一值,计算出现的次数,按计数排序,然后如果可能的话也可能按最高匹配日期排序
任何建议都会很棒,欢呼:)
它也只是个人网站,我实际上并没有对信息做任何事情,只是想学习更多的PHP
答案 0 :(得分:1)
尝试使用GROUP BY
,如下所示:
SELECT UserID, UserIP FROM Visits
WHERE PageID = ###
GROUP BY UserID, UserIP
ORDER BY COUNT(*) DESC, max(`Date`) DESC
答案 1 :(得分:1)
请更改您的查询
$sql = "SELECT UserID, UserIP FROM Visits
WHERE PageID = '".$_GET['p']."'
GROUP BY UserID, UserIP
ORDER BY COUNT(UserID) DESC";
让我知道是否对您有所帮助。
由于