for schleife anstatt if - elseif ?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • for schleife anstatt if - elseif ?

    Ich komme bei der Berechnung von Gesamtminuten einfach nicht weiter. Es werden in der DB 2 Felder für Stunden und Minuten gepflegt. Jetzt möchte ich die Gesamtstunden : Gesamtminuten ausgeben (berechnen).
    PHP Code:
    $ges mysql_fetch_array(mysql_query("SELECT sum(minuten) as summin,sum(stunden) as sumstunde FROM `projekte`"));

    if      ( 
    $ges[summin] > 59 ){ $gesstunde $ges[sumstunde] + $gesmin $ges[summin] - 60;};
    elseif ( 
    $ges[summin] > 119 ){ $gesstunde $ges[sumstunde] + $gesmin $ges[summin] - 120;};
    elseif ( 
    $ges[summin] > 179 ){ $gesstunde $ges[sumstunde] + $gesmin $ges[summin] - 180;}; 
    Dies müsste ich aber ins unendliche führen. Wie geht das besser zu lösen? Ich denke mit einer For Anweisung, aber wie?
    Gruss Sven

  • #2
    Wieso teilst Du die Gesamtanzahl der Minuten nicht einfach durch 60 und addierst das Ganzzahlige Ergebnis auf die Gesamtstundenzahl?

    Könnte ungefähr so gehen (ACHTUNG nicht getested):
    $ges[sumstunde] = $ges[sumstunde]+round($ges[summin]/60);
    $ges[summin]=$ges[summin]%60;

    Von der Idee her müßte es so gehen.

    cu tj99de
    Of all things I've lost
    I miss my mind the most

    Comment


    • #3
      Das habe ich zuerst auch versucht. Leider gibt es da auch Ergebnisse z.B. 2,933333333
      Dann habe ich das nächste Problem, die 0,9333333 weiter zu verarbeiten. Das Ergebnis ist dann auch nicht mehr so genau. Da es sich um eine Projektverwaltung handelt, ist die genaue Anzahl von Minuten schon wichtig!
      Gruss Sven

      Comment


      • #4
        Bei der round() Funktion kannst Du glaube ich auch angeben, wie gerundet werden soll. Wenn das nicht geht, dann schau mal nach einer anderen Funktion. Es ist auf jeden Fall möglich immer abzurunden. Damit bekommst Du dann immer eine glatte Stundenzahl.

        Für die Berechnung der genauen Minutenzahl hab ich den Modulo-Operator (%) genommen, damit nur Ganzzahlige Rest (also die Anzahl der Restminuten) berechnet wird.
        Of all things I've lost
        I miss my mind the most

        Comment


        • #5
          @tj99de:
          Da es sich um eine Projektverwaltung handelt, ist die genaue Anzahl von Minuten schon wichtig!
          Ich glaube unter da sollte man die Finger von der round() Funktion lassen, da dies ja nur NOCH ungenauer macht

          Comment


          • #6
            mein vorschlag:

            PHP Code:
            $ges mysql_fetch_array(mysql_query("SELECT sum(minuten) as summin,sum(stunden) as sumstunde FROM `projekte`"));

            while ( 
            $ges[summin] > 59 ) {
                
            $gesstunde $ges[sumstunde] + $gesmin $ges[summin] - 60;
            }; 
            oder

            PHP Code:
            $ges[sumstunde] = $ges[sumstunde] + floor($ges[summin] / 60);
            $ges[summin]=$ges[summin] % 60
            beides hab ich nicht getestet!

            Comment

            Working...
            X