Php MYSQL中所有50个状态的数组

Php MYSQL中所有50个状态的数组,php,mysql,arrays,mysqli,Php,Mysql,Arrays,Mysqli,不知道如何正确地表达或做它,这就是为什么我在这里笑 以下是当前代码: $sql = "SELECT state FROM list WHERE lead_id = '$lead_id'"; $result = mysqli_query($link, $sql, MYSQLI_USE_RESULT); if (!$result) { echo 'Error: ', $mysqli->error; } while($row = $r

不知道如何正确地表达或做它,这就是为什么我在这里笑

以下是当前代码:

$sql = "SELECT state FROM list WHERE lead_id = '$lead_id'";
    $result = mysqli_query($link, $sql, MYSQLI_USE_RESULT);
    if (!$result) 
    { 
        echo 'Error: ', $mysqli->error;
    }

    while($row = $result->fetch_assoc()){
    //I need some code here

    }
我从基于$lead_id的表中提取状态,这在前面的语句中给出。有几千条记录,这将通过,并得到国家。我需要最好的方法在while循环中保持每个状态的计数(如果有人建议,也可以采用另一种方法)。稍后我需要在一个表中输出状态计数。有人能帮我解决这个问题吗?我不知道该怎么做,也不知道该怎么做


谢谢。我非常感谢您的帮助。

您可能最好执行上一个查询中的连接,因此除了上面while循环中的代码外,您是否可以显示几乎相同的内容:
$sql=“SELECT*from call\u log WHERE MONTH(call\u date)=MONTH(CURDATE()”;$result=mysqli\u query($link、$sql、mysqli\u USE\u result);虽然($row=$result->fetch_assoc()){$lead_id=$row['lead_id'];//上面的代码}
首先修改初始查询,使其类似于
SELECT c.*,s.state FROM call_log c LEFT JOIN state s ON s.lead_id=c.lead_id WHERE MONTH(c.call_date)=MONTH(CURDATE())
-如果您要提取数千条呼叫日志记录,这将使耗时的数据库查询数量减少数千条OK,那么如何从中获取状态计数?它将状态添加为主查询返回的一列,然后您可以在处理每个呼叫日志记录时循环并计数它们;但是,如果您只需要计数,而不需要对调用日志数据执行任何其他操作,那么您可以修改查询以仅返回状态计数