Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 对不同的表进行计数并更新另一个表,其中postnr=";“计数不同”;_Php_Mysql_Pdo - Fatal编程技术网

Php 对不同的表进行计数并更新另一个表,其中postnr=";“计数不同”;

Php 对不同的表进行计数并更新另一个表,其中postnr=";“计数不同”;,php,mysql,pdo,Php,Mysql,Pdo,表1: postnr ------ 11111 11111 11111 22222 33333 33333 表2: postnr count -------- ------- 11111 ? 22222 ? 33333 ? 44444 ? 我想做的是用表1中每个postnr的计数更新表2 因此,在本例中,11111的计数为3,22222的计数为

表1:

    postnr
    ------
    11111
    11111
    11111
    22222
    33333
    33333
表2:

    postnr    count
   --------  -------
    11111     ?
    22222     ?
    33333     ?
    44444     ?
我想做的是用表1中每个postnr的计数更新表2

因此,在本例中,11111的计数为3,22222的计数为1,33333的计数为2

这些表驻留在不同的数据库中,这是我徒劳的尝试,但它不会在表2中生成任何计数

    $pdo1 = new PDO('mysql:host='.DB_SERVER.';dbname='.DB_NAME_PROFILDATA, DB_USER, DB_PASS);
    $pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    $pdo2 = new PDO('mysql:host='.DB_SERVER.';dbname='.DB_NAME, DB_USER, DB_PASS);
    $pdo2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    try {
    foreach ($pdo1->query("SELECT 
                            count(DISTINCT postnr) as pstnr,
                            postnr as postnumret
                        FROM XXX") as $row) {
                            $count = $row['pstnr'];
                            $postnumret = $row['postnumret'];
            $result = $pdo2->prepare("UPDATE YYY
                                        SET a1_ant = '$count' 
                                        WHERE postnummer = $postnumret");
            $result->execute();
    }
}
catch(PDOException $e) {  
     echo $e->getMessage(); 
} 

我使用的是php、pdo和mysql。

您可能只需通过查询就可以做到这一点,无需写下代码。 看看我为你做的

select val, count(val) from t1 group by val;
insert into t2 
select val as vals, count(val) as int from t1 group by val;

select * from t2;

不确定是否正在查找查询。但使用下面的sql查询,您也可以这样做

update tab2 set 
count = 
(select count(postnr) 
 from table1 
 where postnr = tab2.postnr 
 ) 
这里有小提琴演示吗