我有一张桌子:
id,affiliate
每次有人点击链接时,都会插入一个新行
ID是页面的ID,而affiliate是联盟会员的ID。
例如:
页面ID:9会员ID:1
页面ID:9会员ID:2
页面ID:9会员ID:3
我只有3个分支机构。
我想选择此信息,并按关联企业对其进行分组,以获取ID。
我试过这个问题:
SELECT COUNT(*)FROM
table
WHEREid
='9'GROUP BYaffiliate
我在php管理员工作时工作正常,如何在PHP中获取信息?
我试过了:
$ q = mysql_query(“SELECT COUNT(*)FROM
table
WHEREid
='“。$ id。”' GROUP BYaffiliate
“);$ r = mysql_fetch_array($ q);
尝试将数据打印到页面上时,我只得到一个结果。
我是否需要使用foreach / while循环来获取所有3个?我该怎么做呢?
谢谢!
答案 0 :(得分:3)
您应该在循环中执行mysql_fetch_array()(或mysql_fetch_assoc()):
while ($row = mysql_fetch_assoc($q)) {
echo $row["id"];
echo $row["affiliate"];
}
更新(根据评论):
如果您的结果中总共有3行,那么mysql_result()函数可能会有所帮助:
$firstAffiliate = mysql_result($q, 0, "affiliate");
$secondAffiliate = mysql_result($q, 1, "affiliate");
$thirdAffiliate = mysql_result($q, 2, "affiliate");
顺便说一句,小心并检查,查询是否实际返回3个结果。
答案 1 :(得分:2)
像这样循环:
while($row = mysql_fetch_array($q)) { print_r($row); }
答案 2 :(得分:0)
如果您只想获取Affiliate ID
的列表,可以考虑此查询
select group_concat(affiliate)
from table
where id=9;
以上将在单行
中返回逗号分隔值,如1,2,3
因此,您可以在PHP中使用,
进行爆炸,并且爆炸数组的大小与count(*)
相同
答案 3 :(得分:0)
您可以使用变量在实际的mysql语句本身内保存状态。请尝试以下方法:
分支机构: PAGE_ID afil_id
设置@ page_id = 0; 选择page_id,if(@page_id<> page_id,count(*),0),@ page_id:= page_id来自page_id的点击组;
希望有所帮助