2017-01-25 11 views
-1

私は製品と価格の小さなデータベースを持っています。私は注文と呼ばれる私のテーブルの列 "顺序"の合計を計算したいと思います。これを画面に印刷します。私が解決策の近くにいるかどうかは分かりませんが、これはうまくいくと思いましたが、それはありません。私は何を間違えたのですか?mysqliデータベースの合計を計算する

<?php  
function sum() { 
    /* Connect to database */ 
    $db = new mysqli('localhost', 'admin2', 'password', 'myshop'); 
    if($db->connect_errno > 0){ 
     die('Fel vid anslutning [' . $db->connect_error . ']'); 
    } 


$results = mysqli_query("SELECT sum(orderpris) FROM orders") or die(mysqli_error()); 
     while ($rows = mysqli_fetch_array($results)) { 

} 

    ?> 

    <div> 
     Total:&nbsp;<?php echo $rows['sum(orderpris)']; ?> 
    </div> 

<?php } 
?> 

<?php 
sum(); 
?> 
+2

'sum(orderpris)'を 'sum(orderpris)as sum'に変更すると、' $ row ['sum'] ' – ArtisticPhoenix

+0

を使うことができます。コア関数をカスタム関数として使うべきではありません。コアMySQL集合関数。悪影響を及ぼす可能性があります。 –

+0

私は「AS total」と言っていたはずですが、sumは重要な仕事ですから... bla bla :-( – ArtisticPhoenix

答えて

-1

これを試してみてください:

<?php 

function sum() { 
    /* Connect to database */  
    $db = new mysqli('localhost', 'admin2', 'password', 'myshop'); 
    if ($db->connect_errno > 0) { 
     die('Fel vid anslutning [' . $db->connect_error . ']'); 
    } 
    $results = mysqli_query($db, "SELECT sum(orderpris) as total FROM orders") or die(mysqli_error()); 
    while ($rows = mysqli_fetch_array($results)) { 
     $iResult = 'Total:'.$rows['total']; 
    } 
    return $iResult; 
} 
echo sum(); 

1-私が変更されました。代わりに

$results = mysqli_query($db, "SELECT sum(orderpris) as total FROM orders") or die(mysqli_error()); 

$results = mysqli_query("SELECT sum(orderpris) FROM orders") or die(mysqli_error()); 

をあなたが見ることができるように、mysqli_query機能は、少なくとも二つが必要ですパラメータ:

-A link identifier, in your case it is $db 
    -The query string. 

2 - 私は働く - それクエリ

に別名「合計」を追加しましたが、あなたはいくつかの機能を持っているし、あなたがする必要があるとし、あなたの関数にデータベース接続を使用していないしようとしていますデータベースに接続すると、毎回同じアクションが繰り返されます。データベース接続はなく、各機能のための複数の接続にユニークな方法を作成するために、クラスに

-Tryの和()関数を移動させる

-Try。

+0

このソリューションはうまくいきました!あなたが提案したようにクラスに接続し、機能をクラスに追加してください。ありがとう! – Pepsi

+0

解決策があなたのために働くなら、それを有用な答えとマークしてみて、将来誰かに役立つかもしれません。 – rescobar

+0

私はそれをしました。フィードバックありがとうございます!評判が15未満の人の投票が記録されますが、公開されている投稿のスコアは変更されません " – Pepsi