cc: Addieren von Ergebnissen in einer while-Schleife

Hallo Zusammen!

Ich bastel gerade an einer Übersicht von Wettenabgaben. Es wird bspw. die Quote, der Einsatz und ob die Wette gewonnen, verloren oder noch offen ist in eine mysql-Tabelle eingetragen.
Bei result=ja heißt es, dass die Wette gewonnen wurde, bei nein entsprechend verloren und wenn noch nichts eingetragen wurde, steht sie auf open.
Je nach Ausgang der Wette wird ein Verlust oder Gewinn berechnet und ausgegeben. Wie kann ich nun Gewinn und Verlust addieren und als $total ausgeben lassen? So wie ich das hier hingewurschtelt habe klappts nicht...
Kann mir jemand helfen und Vorschläge bringen?
Hier der Code:

  
$total=0;  
  
while($data_bet=mysql_fetch_array($result))  
{  
  
  if($data_bet["result"]=="ja")  
  {  
    $won=$data_bet["einsatz"]*$data_bet["quote"]-$data_bet["einsatz"];  
    $won=$won-($won/25);  
    print "<font color=\"green\">+".number_format($won, 2, '.', '')." €</font>";  
  }  
  else  
  {  
    if($data_bet["result"]=="nein")  
    {  
      $lost=-$data_bet["einsatz"];  
      print "<font color=\"red\">".$lost." €</font>";  
    }  
    else  
    print "open";  
  }  
  
  $total += $won+$lost;  
  
}  
  
print number_format($total, 2, '.', '');  
  

  1. Hallo,

    Ich bastel gerade an einer Übersicht von Wettenabgaben.
    Bei result=ja heißt es, dass die Wette gewonnen wurde, bei nein entsprechend verloren und wenn noch nichts eingetragen wurde, steht sie auf open.

    dann geh mal systematisch deinen Code durch, nimm an, $data_bet["result"] habe den Wert "ja".

    if($data_bet["result"]=="ja")
      {
        $won=$data_bet["einsatz"]*$data_bet["quote"]-$data_bet["einsatz"];
        $won=$won-($won/25);
        print "<font color="green">+".number_format($won, 2, '.', '')." €</font>";
      }

    Dieser Zweig wird also ausgeführt, $won erhält einen sinnvollen Wert.

    else
      {
        if($data_bet["result"]=="nein")
        {
          $lost=-$data_bet["einsatz"];
          print "<font color="red">".$lost." €</font>";
        }
        else
        print "open";
      }

    Dieser nicht, also behält $lost seinen Wert aus dem vorherigen Schleifendurchlauf, oder ist gar undefiniert.

    $total += $won+$lost;

    Was zählst du hier also zusammen? Jedenfalls nichts Sinnvolles.
    Ich würde dir empfehlen, in beiden Zweigen (won/lost) dieselbe Variable zu verwenden - nenne sie meinetwegen $balance, damit man sich nicht mit den Namen verwirrt. Und vergiss nicht, sie bei "open" auch auf 0 zu setzen.
    Alternativ verzichte auf $won, $lost oder $balance und berechne die Veränderung von $total direkt innerhalb des jeweiligen if/else-Zweigs.

    So long,
     Martin

    --
    Der Mensch denkt, Gott lenkt.
    Der Mensch dachte, Gott lachte.
    1. Hallo,

      Ich bastel gerade an einer Übersicht von Wettenabgaben.
      Bei result=ja heißt es, dass die Wette gewonnen wurde, bei nein entsprechend verloren und wenn noch nichts eingetragen wurde, steht sie auf open.

      dann geh mal systematisch deinen Code durch, nimm an, $data_bet["result"] habe den Wert "ja".

      if($data_bet["result"]=="ja")
        {
          $won=$data_bet["einsatz"]*$data_bet["quote"]-$data_bet["einsatz"];
          $won=$won-($won/25);
          print "<font color="green">+".number_format($won, 2, '.', '')." €</font>";
        }

      Dieser Zweig wird also ausgeführt, $won erhält einen sinnvollen Wert.

      else
        {
          if($data_bet["result"]=="nein")
          {
            $lost=-$data_bet["einsatz"];
            print "<font color="red">".$lost." €</font>";
          }
          else
          print "open";
        }

      Dieser nicht, also behält $lost seinen Wert aus dem vorherigen Schleifendurchlauf, oder ist gar undefiniert.

      $total += $won+$lost;

      Was zählst du hier also zusammen? Jedenfalls nichts Sinnvolles.
      Ich würde dir empfehlen, in beiden Zweigen (won/lost) dieselbe Variable zu verwenden - nenne sie meinetwegen $balance, damit man sich nicht mit den Namen verwirrt. Und vergiss nicht, sie bei "open" auch auf 0 zu setzen.
      Alternativ verzichte auf $won, $lost oder $balance und berechne die Veränderung von $total direkt innerhalb des jeweiligen if/else-Zweigs.

      So long,
      Martin

      Danke für den Denkanstoß!

      Code sieht nun wiefolgt aus und funktioniert wunderbar:

        
      $total=0;  
        
      while($data_bet=mysql_fetch_array($result))  
      {  
        
        if($data_bet["result"]=="ja")  
        {  
          $won=$data_bet["einsatz"]*$data_bet["quote"]-$data_bet["einsatz"];  
          $won=$won-($won/25);  
          print "<font color=\"green\">+".number_format($won, 2, '.', '')." €</font>";  
          $total=$won+$total;  
        }  
        else  
        {  
          if($data_bet["result"]=="nein")  
          {  
            $lost=-$data_bet["einsatz"];  
            print "<font color=\"red\">".$lost." €</font>";  
            $total=$lost+$total;  
          }  
          else  
          {  
          print "open";  
          $total=0+$total;  
          }  
        }  
      }  
        
      print number_format($total, 2, '.', '');  
      
      
  2. Hi cc,

    Die Arbeit kann MySql für dich erledigen. Schau dir mal

    count

    MfG
    Otto