for schleife anstatt if - elseif ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

    Kommentar


    • #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

      Kommentar


      • #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

        Kommentar


        • #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

          Kommentar


          • #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!

            Kommentar

            Lädt...
            X