我有一个在线表单,用于在专用的MySQL数据库中收集消费者数据和商店。在某些情况下,数据在“RefID”变量下的URL中传递,该变量也存储在数据库中并附加到每个注册。
我使用'mysql_num_rows($ result)'来获取另一个页面上的所有代理详细信息,但这只返回所有可用的详细信息。我的目标如下:
我想创建一个HTML表格,根据我网站上所有注册的列表自动生成行。如果在该特定记录上存在唯一的RefID,则仅创建新行。如果该字段为NULL,则在单行上报告。
简而言之,HTML表格看起来像这样:
RefID - 注册数量
abc123 - 10
棒球 - 11
twonk - 7
NULL - 33
其中abc123是特定的RefID,10是RefID在DB中出现的次数。如果使用RefID =“horses”进行新注册,则会创建一个新行,显示“horses - 1”。帐户管理员可以查看HTML表格,该帐户管理员需要查看特定RefID的注册人数(他们不会提前知道)。
有人有什么建议吗?
答案 0 :(得分:2)
我的建议是不为此创建一个表。只需在需要时查询现有表格以获取数字:
SELECT RefID, COUNT(*) AS num_enrollments FROM yourTable GROUP BY RefID;
此查询不会计算所有NULL,如果您确实需要显示NULL的结果,请执行以下操作:
(SELECT RefID, COUNT(*) AS num_enrollments FROM yourTable GROUP BY RefID)
UNION
(SELECT "NULL", COUNT(*) FROM yourTable WHERE RefID IS NULL);
如果确实希望显示此信息的表格,请使用上述查询之一view。
答案 1 :(得分:1)
我认为这就是你想要的,我测试它并返回正确的值:
<?php
$query = mysql_query(" SELECT DISTINCT RefID FROM test_this ");
echo '<table>';
while ($data = mysql_fetch_array($query)) {
$uniq = mysql_num_rows(mysql_query(" SELECT * FROM test_this where RefID = '".$data['RefID']."' "));
echo '<tr><td>'.$data["RefID"].'</td><td>'.$uniq.'</td></tr>';
}
echo '</table>';
?>
如果它不能解决你的问题,请告诉我,我会尽力帮助你!
编辑:以上结果是 一张桌子:
abc123 - 5
棒球 - 4
twonk - 6
答案 2 :(得分:0)
我能想到的唯一(丑陋)解决方案是在RefID列上仅选择不同的值,然后使用COUNT执行单独的查询。