使用PHP的MySQL表循环

时间:2010-06-14 19:57:21

标签: php mysql

我有一个在线表单,用于在专用的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的注册人数(他们不会提前知道)。

有人有什么建议吗?

3 个答案:

答案 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执行单独的查询。