检查数据库中的活动计费服务

时间:2013-08-24 13:52:42

标签: php mysql database-design product whmcs

我正在整理一个小脚本,该脚本将查询我们的结算数据库,并报告任何有免费服务的客户帐户(免费提供),但不再在其帐户上提供付费服务。

这个想法基本上是他们有产品ID a,产品ID b,或者他们两个都是活跃的(我们会说那些是免费的),但没有别的,我想找到那些帐户。我应该保持bProductA = false和bProductB = false这样的bool并将其设置为true,如果找到的话,或者我是否可以更清洁地执行此操作?

<?php

    // Establish the MySQL Database Connections
    include_once("db.php");

    $clients = mysql_query('SELECT id FROM tblclients WHERE status = "Active"');
    while ($client = mysql_fetch_array($clients))
    {
        $client_id = $client["id"];

        $products = mysql_query('SELECT packageid FROM tblhosting WHERE userid = "' . $client_id . '" AND domainstatus = "Active" OR domainstatus = "Suspended"');
        while ($product = mysql_fetch_array($products))
        {
            // Check for MYSQL/DNS Products
            $product_id = $product["id"];
            $package_id = $product["packageid"];

            // MySQL Database
            if ($package_id == "999")
            {

            }

            // DNS Record
            if ($package_id == "999")
            {

            }
        }
    }

?>

1 个答案:

答案 0 :(得分:0)

如果您打算在数据库方面做很多工作,那么学习思考数据集会更好。 SQL数据库基于集合。任何时候你都想要

  • 运行查询,然后
  • 循环结果,然后
  • 执行另一个查询以获取您感兴趣的数据,然后

你几乎肯定是在错误的轨道上。

应该想要考虑的是

  • 具有有效免费服务的活动客户端组,以及
  • 拥有有效付费服务的活跃客户端集。

(我不敢打赌每个非活动客户都没有免费或付费服务。)

您是感兴趣的在第一组成员的客户中,但不是第二组的成员。你可以用一个查询来获得它。

编辑您的问题,如果您需要更多帮助来编写该查询,请粘贴CREATE TABLE语句。