-1

2 つのテーブルの合計を合計して、それを自分の Web サイトに配置したいのですが、試したコードは次のとおりです。

        <?php
         $host     = "localhost";
             $username = "runerebe_online";
             $password = "***";
             $db_name  = "runerebe_online";
         mysql_connect("$host", "$username", "$password") or die (mysql_error ());
         mysql_select_db("$db_name") or die(mysql_error());
             $host     = "localhost";
             $username = "runerebe_online2";
             $password = "***";
             $db_name  = "runerebe_online2";
          mysql_connect("$host", "$username", "$password") or die (mysql_error ());
          mysql_select_db("$db_name") or die(mysql_error());
          $total = "SELECT (online + online2)";
           $rs = mysql_query($total);
          while($row = mysql_fetch_array($rs)) {      
            echo $row['total'];
          }
           mysql_close();
      ?>    

これは私がこれを使用したときのエラー印刷です

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/runerebe/public_html/home/index.php on line 63

これは 63 行目で、内容は次のとおりです。

    63: while($row = mysql_fetch_array($rs)) {    
    64:       echo $row['total'];
    65: }
4

1 に答える 1

1

あなたのクエリは無効です。そのため、成功するために必要なリソースではなく、mysql_query()失敗して戻るのです。FALSEmysql_fetch_array()

2 つの異なるデータベースから 2 つの値を読み取る必要があり、ユーザーが両方のデータベースで select を実行する権限を付与されていて、現在データベースに接続しているonline場合、次のようなステートメントでそれを実行できます。

SELECT
    (SELECT SUM(o2.columnname) FROM runerebe_online2.tablename o2) + 
    (SELECT SUM(columnname) FROM tablename) TOTAL

それ以外の場合は、このように php で 2 つの値を別々に取得する必要があります

//Connect and get a value from db 'runerebe_online'
...
$db_name  = "runerebe_online";
$link1 = mysql_connect("$host", "$username", "$password") or die (mysql_error ());
mysql_select_db($db_name, $link1) or die(mysql_error());
$sql = "SELECT SUM(columnname) subtotal FROM tablename"
$result = mysql_query($total, $link1);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$subtotal1 = $row['subtotal'];
mysql_free_result($result);
mysql_close($link1);

//Connect and get a value from db 'runerebe_online2'
...
$db_name  = "runerebe_online2";
$link2 = mysql_connect("$host", "$username", "$password") or die (mysql_error ());
mysql_select_db("$db_name", $link2) or die(mysql_error());
$sql = "SELECT SUM(columnname) subtotal FROM tablename"
$result = mysql_query($total, $link2);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$subtotal2 = $row['subtotal']
mysql_free_result($result);
mysql_close($link1);

$total = $subtotal1 + $subtotal2;
echo $total;
...
于 2013-05-24T04:24:40.127 に答える