Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库检索数据并计算数据出现的次数_Php_Mysql_Arrays_For Loop - Fatal编程技术网

Php 从数据库检索数据并计算数据出现的次数

Php 从数据库检索数据并计算数据出现的次数,php,mysql,arrays,for-loop,Php,Mysql,Arrays,For Loop,我在MySQL中有两个表,它们之间没有任何关系。它们确实有一列类似的数据邮政编码/邮政编码 我要对这些表做的是比较一个表中的邮政编码,将它们与第一个表中的邮政编码进行比较,然后进行计数 例如 表A的邮政编码为T0A和T0B,我只使用邮政编码中的前三个字符,因为这是我需要比较的全部内容 表B有13行邮政编码与T0A匹配,3行邮政编码与T0B匹配 因此,结果将是: T0A = 13 T0B = 3 然而,我需要把它们按城市分开,因为T0A和T0B可以是一个城市,所以我需要把它们加在一起,得到类似的

我在MySQL中有两个表,它们之间没有任何关系。它们确实有一列类似的数据邮政编码/邮政编码

我要对这些表做的是比较一个表中的邮政编码,将它们与第一个表中的邮政编码进行比较,然后进行计数

例如 表A的邮政编码为T0A和T0B,我只使用邮政编码中的前三个字符,因为这是我需要比较的全部内容

表B有13行邮政编码与T0A匹配,3行邮政编码与T0B匹配

因此,结果将是:

T0A = 13
T0B = 3
然而,我需要把它们按城市分开,因为T0A和T0B可以是一个城市,所以我需要把它们加在一起,得到类似的结果

Edmonton = 16
我一直在用for循环和数组来做这件事。所以我将表A中的数据读入一个数组,将表b中的数据读入另一个数组。然后,我使用嵌套for循环将表B中的邮政编码与表A中的邮政编码进行比较,以统计邮政编码的出现次数,然后将它们存储在另一个数组中。这一切都很好,但现在我有点被困在试图将计数划分为正确的城市,我坐在这里想一定有更简单的方法来做到这一点。有没有人有什么建议,我是不是做错了

结构-表A 结构-表B
只是我理解的一个抽象概念。您可能需要根据需要进行调整

在本例中,我假设表B中的字段_1是邮政编码

按邮政编码计算:

select 
    left(ta.postal_zip, 3) p_code, count(*)
from 
    jos_form_submitteddata_form1 tb
    join jos_postalzip_redirect ta on left(tb.field_1, 3) = left(ta.postal_zip, 3)
group by
    p_code
按城市计算:

select
    ta.city, count(*)
from
    jos_form_submitteddata_form1 tb
    join jos_postalzip_redirect ta on left(tb.field_1, 3) = left(ta.postal_zip, 3)
group by 
    ta.city

只是我理解的一个抽象概念。您可能需要根据需要进行调整

在本例中,我假设表B中的字段_1是邮政编码

按邮政编码计算:

select 
    left(ta.postal_zip, 3) p_code, count(*)
from 
    jos_form_submitteddata_form1 tb
    join jos_postalzip_redirect ta on left(tb.field_1, 3) = left(ta.postal_zip, 3)
group by
    p_code
按城市计算:

select
    ta.city, count(*)
from
    jos_form_submitteddata_form1 tb
    join jos_postalzip_redirect ta on left(tb.field_1, 3) = left(ta.postal_zip, 3)
group by 
    ta.city

你能提供表A和表B的结构吗?您可以运行SHOW CREATE TABLE TABLE_name来获取用于创建表的MySQL语法,其中TABLE_name当然是要打印的表的名称。您可以澄清一下:您想查找表B中表A中某个位置的所有邮政编码,并统计它们的出现次数,一次按邮政编码,一次按城市?表B中哪个字段是邮政编码字段?您能改进问题标题吗?我们知道这是关于PHP和MySQL的标签,我们知道这是关于帮助的,因为这是堆栈溢出和。。。好你还想要什么?香蕉?你能提供表A和表B的结构吗?您可以运行SHOW CREATE TABLE TABLE_name来获取用于创建表的MySQL语法,其中TABLE_name当然是要打印的表的名称。您可以澄清一下:您想查找表B中表A中某个位置的所有邮政编码,并统计它们的出现次数,一次按邮政编码,一次按城市?表B中哪个字段是邮政编码字段?您能改进问题标题吗?我们知道这是关于PHP和MySQL的标签,我们知道这是关于帮助的,因为这是堆栈溢出和。。。好你还想要什么?香蕉