使用PHP的MySQL表循环

使用PHP的MySQL表循环,php,mysql,Php,Mysql,我有一个在线表单,它收集消费者数据并存储在专用的MySQL数据库中。在某些情况下,数据在URL中“RefID”变量下传递,该变量也存储在数据库中并附加到每个注册 我使用“mysql_num_rows($result)”获取另一个页面上的所有代理详细信息,但这只返回所有可用的详细信息。我的目标如下: 目标 我想创建一个HTML表,其中的行根据我网站上所有注册的列表自动生成。当且仅当特定记录上存在唯一的RefID时,才会创建新行。如果字段为空,则在单行上报告 简言之,HTML表可以如下所示: Ref

我有一个在线表单,它收集消费者数据并存储在专用的MySQL数据库中。在某些情况下,数据在URL中“RefID”变量下传递,该变量也存储在数据库中并附加到每个注册

我使用“mysql_num_rows($result)”获取另一个页面上的所有代理详细信息,但这只返回所有可用的详细信息。我的目标如下:

目标 我想创建一个HTML表,其中的行根据我网站上所有注册的列表自动生成。当且仅当特定记录上存在唯一的RefID时,才会创建新行。如果字段为空,则在单行上报告

简言之,HTML表可以如下所示:

RefID-注册数

abc123-10

棒球-11

twonk-7

空-33

其中abc123是一个特定的RefID,10是RefID在数据库中出现的次数。如果新注册带有RefID=“horses”,则会创建一个新行,显示“horses-1”。帐户管理员可以查看HTML表,需要查看特定RefID的注册数(他们不会提前知道)


有人有什么建议吗?

我的建议是不要为此创建一个表。只需在需要时查询现有表中的数字即可:

SELECT RefID, COUNT(*) AS num_enrollments FROM yourTable GROUP BY RefID;
如果确实需要结果来显示空值,则此查询不会计算所有空值。请执行以下操作:

(SELECT RefID, COUNT(*) AS num_enrollments FROM yourTable GROUP BY RefID)
UNION
(SELECT "NULL", COUNT(*) FROM yourTable WHERE RefID IS NULL);

如果您确实需要此信息的表格表示,请使用上述查询之一使用。

我的建议是不要为此创建表格。只需在需要时查询现有表中的数字即可:

SELECT RefID, COUNT(*) AS num_enrollments FROM yourTable GROUP BY RefID;
如果确实需要结果来显示空值,则此查询不会计算所有空值。请执行以下操作:

(SELECT RefID, COUNT(*) AS num_enrollments FROM yourTable GROUP BY RefID)
UNION
(SELECT "NULL", COUNT(*) FROM yourTable WHERE RefID IS NULL);

如果您确实想要此信息的表表示形式,请使用上述查询之一。我能想到的唯一(丑陋)解决方案是只在RefID列上选择不同的值,然后使用COUNT进行单独的查询。

我能想到的唯一(丑陋)解决方案是只在RefID列上选择不同的值,然后对COUNT执行单独的查询。

我想这就是您想要的,我已经对它进行了测试并返回了正确的值:

<?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>';

?>

我想这就是您想要的,我已经测试了它并返回了正确的值:

<?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>';

?>

我的道歉。当我说“创建一个表”时,我指的是“管理员页面”上的一个HTML表。我明白了。忽略我的答案:|答案仍然有效-您只需查看结果即可创建HTML表。我知道count(*)将计数空行,但我不确定group by是否将“null”refid分组在一起。我想会的,所以你的第二个问题可能没有必要。我很抱歉。当我说“创建一个表”时,我指的是“管理员页面”上的一个HTML表。我明白了。忽略我的答案:|答案仍然有效-您只需查看结果即可创建HTML表。我知道count(*)将计数空行,但我不确定group by是否将“null”refid分组在一起。我想会的,所以你的第二个问题可能没有必要。