0

誰かがサービス番号を選択すると、それがポップアップ表示され、合計1つのレコードのみが表示されます。2つのテーブルから合計してあげたいです。

<?php

   $qry = mysql_query ("SELECT SUM(fruit) AS total FROM fruitinventory WHERE `fruitcolor` LIKE '%{$_POST['select']}%'");

$row2 = mysql_fetch_assoc($qry);


    echo $row['total'];

?>

<?php

   $qry = mysql_query ("SELECT SUM(fruitsmart) AS total FROM fruitrotten WHERE `fruitcolor` LIKE '%{$_POST['select']}%'");

$row = mysql_fetch_assoc($qry);


    echo $row['total'];

?>

それで

その場合も、両方の行の合計を表示したいと思います。

<?php 

$total return = $row+$row2 

?>
4

3 に答える 3

0

コードで同じ種類の構造を維持したい場合は、次のように合計を表示できます(注:MySQL関数は非推奨であるため、MySQLi(i =改善された)関数を使用する必要があります):

<?php

$qry = mysqli_query ("SELECT SUM(fruit) AS total FROM fruitinventory WHERE `fruitcolor` LIKE '%{$_POST['select']}%'");
$row2 = mysqli_fetch_assoc($qry);
echo $row2['total'];


$qry = mysqli_query ("SELECT SUM(fruitsmart) AS total FROM fruitrotten WHERE `fruitcolor` LIKE '%{$_POST['select']}%'");
$row = mysqli_fetch_assoc($qry);
echo $row['total'];

$total = $row['total'] + $row2['total'];
echo $total;

?>

データベースを保護するために、mysql_の代わりにPDOを使用する(または少なくともmysqli_real_escape_stringを変数にラップする)ことを検討することをお勧めします。

于 2012-07-12T01:03:39.670 に答える
0

SQLのみを使用して合計を試みることができます。以下のようなもの:

$qry = mysql_query ("

    SELECT (

        ( SELECT SUM(fruit) AS total FROM fruitinventory WHERE `fruitcolor` LIKE '%{$_POST['select']}%' ) + 

        ( SELECT SUM(fruitsmart) AS total FROM fruitrotten WHERE `fruitcolor` LIKE '%{$_POST['select']}% )

    ) AS total") ;

$row = mysql_fetch_assoc($qry);

echo $row['total'];
于 2012-07-12T01:31:14.633 に答える
0

2つのデータベース呼び出しを1つのクエリに統合し、結果の列を変数として使用してエコーアウトできます。

<?php
    $input = mysql_real_escape_string($_POST['select']);
    $sql = "
        SELECT
            (
                SELECT SUM(fruit) 
                FROM fruitinventory 
                WHERE fruitcolor LIKE '%$input%'
            ) AS totalfruit,
            (
                SELECT SUM(fruitsmart) 
                FROM fruitrotten 
                WHERE fruitcolor LIKE '%$input%'
            ) AS totalfruitsmart";
    $qry = mysql_query($sql);
    $row = mysql_fetch_assoc($qry);

    echo $row['totalfruit'] . '<br />';
    echo $row['totalfruitsmart'] . '<br />';
    echo $row['totalfruit'] + $row['totalfruitsmart'];
?>

少なくとも、mysql_real_escape_string()元のコードが広く受け入れられていたSQLインジェクション攻撃を防ぐために使用してください。

于 2012-07-12T02:27:47.290 に答える