2016-07-05 11 views
1

Ich habe seit einiger Zeit mit diesem Foreach-Loopp gekämpft. Was ich tun muss, ist Summenwerte aus meiner Datenbanktabelle zu erhalten, einige Berechnungen durchzuführen und sie dann als Balkendiagramm mit CSS anzuzeigen. aber meine foreach-Schleife gibt mir nur den letzten Wert in der Tabelle. Jede Hilfe wird sehr geschätzt, ist hier eine Probe von meinem Code:PHP foreach loop gibt nur den letzten Wert aus mysql aus Tabelle

<?php 

    $total_query = "select sum(amount_recieved) from reciepts"; 
    $total_result = safe_query($total_query); 

    $total = mysql_fetch_row($total_result); 

    $query = "select category_id from customer_categories"; 
    $result = safe_query($query); 

    while($cat_id = mysql_fetch_assoc($result)){ 

     foreach ($cat_id as $cat) { 

      $sum_query = "select sum(amount_recieved) from reciepts where category =".$cat.""; 
      $sum_result = safe_query($sum_query); 

      $sum = mysql_fetch_array($sum_result); 

      $percentage = ($sum[0]/$total[0]) * 100; 

      echo " 
       <li title='".$cat.", NGN ".$sum[0].", ".$percentage."%' class='bar' style=' 
        position:absolute; 
        bottom:0; 
        left:1%; 
        float:left; 
        width:7%; 
        height:".$percentage."%; 
        margin-right:1%; 
        margin-left:1%; 
        background:#999;'> 
       </li>"; 

      } 
    } 

?> 
+2

Die while-Schleife durchläuft die Zeilen, die foreach durchläuft die Spalten, ist das was Sie wollen? –

+1

Wie viele Kategorien gibt es in der 'customer_categories' Tabelle? – ajmedway

+1

Wirklich sollte das nicht mehr posten: http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – CD001

Antwort

0

Ihr Problem ist, dass Sie jede Leiste positionieren, die genau durch die Daten abgerufen werden können, im selben Ort:

 echo " 
      <li title='" . $cat . ", NGN " . $sum[0] . ", " . $percentage . "%' class='bar' style=' 
       position:absolute; 
       bottom:0; 
       left:1%; 
       float:left; 
       width:7%; 
       height:" . $percentage . "%; 
       margin-right:1%; 
       margin-left:1%; 
       background:#999;'> 
      </li>"; 

Floated nach links und absolut zu ihnen positioniert werden alle überlagert werden. Keine Notwendigkeit für eine absolute Positionierung auf diesen li-Elementen, versuchen Sie position:absolute; zu entfernen.

+1

Thnk Sie so viel @ ajmedway. das hat mein Problem behoben ... – Immanuel

+0

@Immanuel Ich bin froh zu hören, bitte könntest du auf meine Antwort klicken? Vielen Dank! :) – ajmedway

0

versuchen Sie dies; $ sum_query = "wähle summe (menge_recieved) aus rezepten wo category =". $ Cat ['category_id'];

Verwandte Themen