ilch Forum » Allgemein » HTML, PHP, SQL,... » Berechnungen mit PHP und MySql

Geschlossen
  1. #1
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    Servus Leute!
    Wer kann mir weiterhelfen?

    Möchte gerne eine Division mittels php und MySql machen.
    Sprich Divisor 64,67 (als Beispiel) durch den Dividenden (.$abc.) ergibt so und so viel.
    Wobei ich sagen muss das die Berechnung auch stimmen muss (also bis 2stellig hinterm Koma mit Aufrundung)
    Also wenn Ergebnis 12,345 oder 12,341 wäre php dann aufrundet auf 12,35 (notfalls mit ner zusätzlichen Berechnung +0,01)

    Wie lautet da der Code?

    MFG Druide666


    Zuletzt modifiziert von Druide666 am 04.07.2008 - 01:06:17
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    meinst du sowas hier?

    <?php
    $divisor = '99.99';
    $dividenden = '3';
    $Wert_des_Quotienten = round($divisor / $dividenden, 2);
    echo $Wert_des_Quotienten;
    ?>



    Zuletzt modifiziert von Balthazar3k am 04.07.2008 - 02:11:04
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    Fast!
    Habe es gerade so probiert:
    $divisor='99,99';
    $dividenden='3';
    $Wert_des_Quotienten=round($divisor/$dividenden,2);
    ###########################################################
    $round = $divisor/$dividenden;
    $round -= $Wert_des_Quotienten;
    ###########################################################
    echo $Wert_des_Quotienten . " (".round($round,3).")";


    aber als Ergebnis kommt 33 (0) raus aber die 2 Stellen nach dem Koma zeigt er nicht an. und was das mit der (0) zu tun hat weis ich auch net
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Habe das oben geändert, in 99,99 sollte ein Punkt sein 99.99 ^^
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    OK jetzt werden die Stellen nach dem Koma richtig dargestellt. Aber wenn die Rechnung mit 100.00 statt 99.99 ist dann kommt als Ergebnis 33.33 (0.003) raus da sollte dann aber 33,34 stehen, da das richtige Ergebnis ja 33.333333333.... wäre.

    Ist das möglich?
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also in der Schule wohl nicht aufgepasst, unter 5 wird abgerundet zwinker
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    Toll genau dazu hatte ich schon was geschrieben, und habe es aber dann doch gelassen. Ich weis, dass unter 5 abgerundet wird aber das darf bei dieser Berechnung nicht sein.

    habe mir folgendes gedacht:

    Bei der Rechnungsformel von Balthazar3k steht doch in der Klammer der Wert von der 3ten Stelle hinterm Komma.
    echo $Wert_des_Quotienten . " (".round($round,3).")";

    Wenn ich jetzt hergehe und einen Wert mit 0,010 angebe und diesen mit $round subtrahiere danach dann mit dem Gesammtwert addiere sollte doch Theoretisch dann immer aufgerundet werden.
    Habe es mal so versucht:
    $divisor='100.00';
    $dividenden=3;
    $Wert_des_Quotienten=round($divisor/$dividenden,2);
    ###########################################################
    $round = $divisor/$dividenden;
    $round -= $Wert_des_Quotienten;
    	$runda='0.010';
    	$ggp=round($dividenden*$Wert_des_Quotienten,4);
    	$rund =round($runda-$round,4);
    	$summe =round($Wert_des_Quotienten+$rund,4);
    ###########################################################
    echo $Wert_des_Quotienten . " (".round($round,3).")<br /><br />";
    	echo 'Summe:' .$summe. ' <br /><br />';
    	echo 'bei der Gegenprobe kommt diese Summe raus:'.$ggp. ' <br /><br />';
    	echo 'Tatsächlicher Betrag ist:'.$divisor. ' <br /><br />';


    Aber irgendwie stimmt da wieder was net.

    bei ner Rechnung von 99.99 wäre ja das Ergebnis 33.33 Mit der Formel von mir würde er 33.34 ausgeben. Wäre zwar net schlimm, aber für die Weitere Berechnungen, die später noch hinzugefügt werden wäre es dann nicht mehr passend.
    Also er sollte das Ergebnis dann so ausgeben:
    bei Wert 99.99 -> 33.33 (Tatsächlicher Wert)
    bei Wert 100.00 -> 33.34
    bei Wert 100.01 -> 33.34
    bei Wert 100.01 -> 33.34 (Tatsächlicher Wert)
    bei Wert 100.02 -> 33.35

    Das Problem ist, wenn ein Tatsächlicher Betrag vorhanden ist rechnet er dennoch plus 0.010 dadurch wird z.B. bei 99.99 nicht 33.33 sondern 33.34 angezeigt.

    Ich hoffe ihr könnt mir jetzt weiterhelfen und versteht was ich meine.


    Zuletzt modifiziert von Druide666 am 04.07.2008 - 16:26:09
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Hassmann Mitglied
    Registriert seit
    13.02.2008
    Beiträge
    1.591
    Beitragswertungen
    9 Beitragspunkte
    <?php
    echo 99.99 / 3;
    ?>
    Sub2Go.NET | Kostenlosen Webspace mit vielen features! Für Ilch-Forumsmitglieder doppelten Speicher!
    Mave1993.de Blog
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    OK Habe grad gemerkt, das er schon richtig rechnet und doch falsch zwinker
    wenn er rechnen soll runda - round würde das bei einem Tatsächlichen Wert heisen, das er z.B. bei 99.99 dann 0.010 - 0 rechnet wäre dann logischerweise 0.010 das Ergebnis das er wiederum dann der Endsumme Addiert.

    Kann man da ne Formel einbinden, das wenn $round = 0.000 er gar nicht die Endsumme mit $runda addiert?

    Müßte doch ne "if" Formel sein!?

    MFG Druide666
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Darf man den fragen für was du es einsetzen möchtest vieleicht kann man dir dan besser helfen.
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    Ich möchte ein Modul schreiben, das uns automatisch einen Kassen Sturz macht.
    Also ausrechnet was der jeweilige User zu zahlen hat und wie viel Guthaben auf dem Konto ist.

    OK habe alles hinbekommen jetzt wollte ich zum nächsten Punkt

    Und komme da schon auf ein neues Problem.

    <?php
    $test = @db_query("SELECT COUNT( uid )
    FROM prefix_groupusers
    WHERE `gid` ='2' ");
    ?>

    Bei dieser Formel zählt er ja nur die anzahl der User die auch die Gruppen ID 2 haben.

    Aber wie kann ich jetzt die Kassen Beiträge zusammen rechnen lassen? und zwar so, dass er alles was größer als 0 ist separat rechnet und alles was kleiner als 0 (also minus Beträge) auch wieder Extra?

    Habe mir die PHP der Kasse mal angesehen und daraus mir einen Code gebastelt der wie folgt aussieht:
    <?php
    $plus = @db_query("SUM(betrag)
    FROM prefix_kasse");
    #WHERE betrag > 0
    $plus1    = @db_result($test,0); 
    ?>

    aber dann kommt ne Fehlermeldung und ich glaube auch nicht, das das richtig war.

    MFG Druide666
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Den Minus Betrag Filtern
    SELECT SUM(betrag) FROM prefix_kasse WHERE betrag LIKE '-%'

    Den Plus Betrag Filtern
    SELECT SUM(betrag) FROM prefix_kasse WHERE betrag NOT LIKE '-%'

    Ich weiß aber nicht ob die Syntax so richtig ist Korregiert mich bitte wenns nicht geht!
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    Also irgendwie funtzt der net ganz kommt meldung: Resource id #76

    Habe so den Code geschrieben:
    $test = @db_query("SELECT SUM(betrag) FROM prefix_kasse WHERE betrag LIKE '-%'");
    $test1    = @db_result($test,2); 
    echo $test;

    Stimmt doch oder?
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    ZitatZitat geschrieben von Druide666

    Also irgendwie funtzt der net ganz kommt meldung: Resource id #76

    Habe so den Code geschrieben:
    $test = @db_query("SELECT SUM(betrag) FROM prefix_kasse WHERE betrag LIKE '-%'");
    $test1    = @db_result($test,2); 
    echo $test;

    Stimmt doch oder?


    nein db_result( $test, 0); sollte es sein!


    Zuletzt modifiziert von Balthazar3k am 05.07.2008 - 01:54:49
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    Habe es mit 0 und mit 2 versucht Meldung kommt bei beiden.
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Also wenn in deiner Datenbank das so ist sollte die Abfrage eigendlich gehen. habe sie unter meinen vorraussetzungen getestet.

    <?php 
    $test = db_result(db_query("SELECT SUM(betrag) FROM prefix_kasse WHERE betrag LIKE '-%'"),0);
    echo $test;
    ?>


    nun sehe ich auch dein fehler $test hast du in deinem echo stehen, da sollte aber $test1 stehen.


    Zuletzt modifiziert von Balthazar3k am 05.07.2008 - 02:09:04
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Druide666 Mitglied
    Registriert seit
    16.03.2007
    Beiträge
    85
    Beitragswertungen
    2 Beitragspunkte
    Ich Danke euch vielmals für eure Hilfe habe jetzt meines Wissens nach alle Berechnungen fertig! Freu

    Hoffe mal ich habe nichts vergessen zwinker

    Macht weiter so


    MFG Druide666
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten