Gabi HH: Ausgabe addieren

Hallo,

ich habe unter dem Themenbereich "Datenbanken" bereits eine Frage gestellt. Diese habe ich nun -für meine Zwecke- selber erledigt.

Nun komme ich aber bei der eigentlichen Ausgabe nicht weiter:

  
//gesamtanzahl abfragen  
$query="SELECT (region) r_1, COUNT(region) anzahl, (region_2) r_2, COUNT(region_2) anzahl_2, (region_3) r_3, COUNT(region_3) anzahl_3 FROM meinetabelle GROUP BY (region), (region_2), (region_3)";  
$result=mysql_query($query,$db);  
while ($row = mysql_fetch_array($result))  
{  
//Alle Kunden  
$r[$row['r_1']] = $row['anzahl'];  
$r_2[$row['r_2']] = $row['anzahl_2'];  
$r_3[$row['r_3']] = $row['anzahl_3'];  
}  
echo $r['Mittelrhein'] + $r_2['Mittelrhein'] + $r_3['Mittelrhein']; // Gibt mir 2 aus-weil 2 Einträge vorhanden sind.  

Das ist aber keine "elegante" Lösung. Wie bekomme ich den Teil der Addition in die Schleife integriert?

Danke für nette Tipps

Gabi

  1. Hallo,

    while ($row = mysql_fetch_array($result))
    {
    //Alle Kunden
    $r[$row['r_1']] = $row['anzahl'];
    $r_2[$row['r_2']] = $row['anzahl_2'];
    $r_3[$row['r_3']] = $row['anzahl_3'];
    }

    Kann so nicht funktionieren.

    1. du hast die arrays $r, $r_2 und $r_3 nicht definiert.
    2. für jeden Datensatz in der Schleife überschreibst du den Wert. Wenn du addieren möchtest, heisst es +=

    Kalle

    1. Hallo Kalle,

      ich stehe total auf dem Schlauch-bekomme es nicht hin...

      Liebe Grüsse

      G

    2. Hallo

      deine beiden Aussagen können so auch nicht funktionieren ;)

      1. du hast die arrays $r, $r_2 und $r_3 nicht definiert.

      In PHP zwingt dich keiner dazu Arrays zu definieren bevor du sie nutzt.

      1. für jeden Datensatz in der Schleife überschreibst du den Wert. Wenn du addieren möchtest, heisst es +=

      Mit jedem Durchlauf kommt eine andere Region (und jede Region nur einmal) in den Array als Key. Da dürfte also nichts überschrieben werden.

      Ich würde das Problem so (in der Schleife) lösen

      while (...)
      {
      $Region[$row['r_1']] += $row['anzahl'];
      $Region[$row['r_2']] += $row['anzahl_2'];
      $Region[$row['r_3']] += $row['anzahl_3'];
      }

      Dann hast du am Ende immer nur einmal den Regionnamen (egal ob er in 1, 2 oder 3 stand) und einen Wert.

      Gruß
      Alex

      1. Alex-du bist ein Schatz! Vielen Dank!