2016-10-11 5 views
1

Ich weiß, wie man verbinden, anzeigen, entfernen, Daten aus meiner Datenbank hinzufügen und alles auf meiner Website anzeigen. Alles funktioniert richtig. Ich sehe meine Ergebnisse auf meiner Website und in meiner Datenbank. Ich mache das mit AngularJS, AJAX und PHP, aber mein Problem ist, dass ich nicht weiß, wie man MYSQL SUM() einer meiner Spalte anzeigt. Zum Beispiel ist dies meine Tabelle in Mysql und ich möchte die Gesamtsumme der Geldspalte anzeigen.SQL SUM() und ANGULAR.JS

id money 

1  23 

2  345 

3  111 

Das ist, was ich habe:

index.html:

..................

<table class="table table-striped"> 
    <tr> 
     <th>Money</th> 
    </tr> 
    <tr> 
     <td>{{ wcdrates.sumMoney }}</td> 
    </tr> 
    </table> 

.................

Ich weiß nicht, ob ich ng-repeat so lassen sollte wie es ist oder etwas anderes verwenden stattdessen. Wie auch immer, ng-wiederhole dosent'work. Es zeigt mir alle Ergebnisse aus der Geldspalte und nicht die Gesamtmenge. ............

controller.js

.....................

$http.post('./php/showMoney.php') 
    .success(function(data) { 
    $scope.wcdrates = data; 
    }) 
    .error(function(err) { 
    $log.error(err); 
    }) 

....................

connectDatabase.php

<?php 
define("__HOST__", "127.0.0.1"); 
define("__USER__", "root"); 
define("__PASS__", ""); 
define("__BASE__", "davbaza"); 

class DB { 
    private $con = false; 
    private $data = array(); 

    public function __construct() { 
     $this->con = new mysqli(__HOST__, __USER__, __PASS__, __BASE__); 

     if(mysqli_connect_error()) { 
      die("DB connection failed:" . mysqli_connect_error()); 
     } 
    } 

    public function qryPop() { 
     $sql = "SELECT * FROM `wcdrates` ORDER BY `id` DESC"; 
     $qry = $this->con->query($sql); 
     if($qry->num_rows > 0) { 
      while($row = $qry->fetch_object()) { 
       $this->data[] = $row; 
      } 
     } else { 
      $this->data[] = null; 
     } 
     $this->con->close(); 
    } 



    public function qryFire($sql=null) { 
     if($sql == null) { 
      $this->qryPop(); 
     } else { 
      $this->con->query($sql); 
      $this->qryPop();  
     } 
     //$this->con->close(); 
     return $this->data; 
    } 
} 

?>

showMoney.php

<?php 

include('connectDatabase.php'); 

$db = new DB(); 

$sql = "SELECT SUM(money) as sumMoney FROM wcdrates"; 

$data = $db->qryFire(); 

echo json_encode($data); 

mysql

CREATE TABLE IF NOT EXISTS `wcdrates` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `money` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) 

Ich habe keine Ahnung, was ich sollte bekommen ändern, was ich will.

+0

in Sie 'SUM verwenden, um SQL (Geld) als sumMoney' dann können Sie den Controller mit Namen' sumMoney' –

+0

"zugreifen {{wcdrates.sumMoney} } \t \t es Arbeit dosen't, ich tat, wie Sie gesagt haben, aber immer noch nichts, irgendwelche Ideen? –

+0

Sie con 'console.log (Daten)' 'nach success'? Wenn Sie mit mir teilen bekam! –

Antwort

1

Ändern Sie die qryPop in Ihrem Code in den folgenden Code.

$sql = "SELECT id,money , SUM(money) as sumMoney FROM `wcdrates` ORDER BY `id` DESC"; 

Hoffe, dass Sie die Antwort bekommen

+0

Es funktioniert. Vielen Dank –