Php 如何从多个MySQL数据库添加值

Php 如何从多个MySQL数据库添加值,php,mysql,count,Php,Mysql,Count,我正在尝试添加来自多个mysql数据库的项目数(我还没有谈到添加部分),以打印我主页上的记录总数 我从谷歌搜索的几个网站上获得了“计数”代码的基础知识,但有些地方不太对劲。如果我在phpMyAdmin中单独运行下面的查询,它工作得很好(我从这个1数据库中得到36个结果),但是当我在我的php页面中通过下面的代码运行它时,它只返回1的计数 知道我搞砸了什么吗?谢谢 $connection="localhost"; $username="myusername"; $password="mypassw

我正在尝试添加来自多个mysql数据库的项目数(我还没有谈到添加部分),以打印我主页上的记录总数

我从谷歌搜索的几个网站上获得了“计数”代码的基础知识,但有些地方不太对劲。如果我在phpMyAdmin中单独运行下面的查询,它工作得很好(我从这个1数据库中得到36个结果),但是当我在我的php页面中通过下面的代码运行它时,它只返回1的计数

知道我搞砸了什么吗?谢谢

$connection="localhost";
$username="myusername";
$password="mypassword";
$database1="mydb1";
$database2="mydb2";

$db1 = mysql_connect($connection,$username,$password) or die(mysql_error());
$sel1 = mysql_select_db($database1, $db1);
$query1 = "SELECT count(postID) FROM my_table";
$result1 = mysql_query($query1, $db1);

$db2 = mysql_connect($connection,$username,$password) or die(mysql_error());
$sel2 = mysql_select_db($database2, $db2);
$query2 = "SELECT count(postID) FROM my_table";
$result2 = mysql_query($query2, $db2) or die(mysql_error());

$total_rows = mysql_num_rows($result2);
print $total_rows; 

您正在建立2个连接,但仅打印连接2的结果:

$total_rows = mysql_num_rows($result2);
print $total_rows; 
做一些类似于:

$total_rows = mysql_num_rows($result2 + $result1);
print $total_rows; 

因为它们在同一个数据库主机(localhost)上,所以您只需在一个查询中获取它们。此方法使用一个子查询,该子查询将来自每个数据库的查询
联合起来,然后执行聚合
SUM()
,将它们添加到一起

SELECT SUM(postcounts) AS total
FROM (
  SELECT COUNT(postId) AS postcounts FROM mydb1.my_table
  UNION ALL 
  SELECT COUNT(postId) AS postcounts FROM mydb2.my_table
) allposts
您的
mysql\u num\u rows()
返回计数为1的原因是因为每个查询只返回一行-聚合
count(postIdD)
。如果要检索实际计数,则需要获取该行

假设上述查询存储在
$result
中,则所需的值别名为
total

if ($result) {
  $row = mysql_fetch_assoc($result);
  echo $row['total'];
}
整个事情看起来像:

$db1 = mysql_connect($connection,$username,$password) or die(mysql_error());
mysql_select_db($database1, $db1);
$query = "    
    SELECT SUM(postcounts) AS total
    FROM (
      SELECT COUNT(postId) AS postcounts FROM mydb1.my_table
      UNION ALL 
      SELECT COUNT(postId) AS postcounts FROM mydb2.my_table
    ) allposts ";

$result = mysql_query($query, $db1);

// Fetch the resultant row
if ($result) {
  $row = mysql_fetch_assoc($result);
  echo $row['total'];
}

为什么要创建多个连接实例?您只需拥有一个
mysql\u select\u db
Hi Paul即可。我想我没有解释清楚。我是说我还没有尝试添加。我知道我会像你刚才那样做。我只是说,我试图从1个数据库中提取的结果无法使用我的代码。对不起,我的错误。看起来您正在设置变量
$sel2
,但没有对其进行任何操作。PHP不知道您要选择什么。太棒了!它工作得很好!非常感谢。。也感谢你一路教育我。我的MySQL和PHP技能都很低,但当我看到您提供的一个好例子时,我是一个很好的学习者。再次感谢@我很乐意帮忙。完整而翔实的答案对我来说非常重要