[PHP] & [MySQL] Rechnen im Formular

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Dw4rf, 8. September 2011 .

  1. 8. September 2011
    & [MySQL] Rechnen im Formular

    Hallo zusammen,

    ich habe mir ein kleines Formular gebastellt, mit dem ich quasi eine kleine Liste erstellen möchte, was ich so an monatlichen Ausgaben habe.
    Ich weiss dass gleiches in Excel sehr viel einfacher geht, dennoch würde ich dieses gerne in PHP machen. Möchte es einfach lernen.

    In die Datenbank werden alle Sachen bereits geschrieben, aber wie kann ich das machen, dass in der letzten Box "kohleGesamt, kohleAusgaben und partyGeld" quasi die berechneten Zahlen stehen?

    kohleGesamt = wie viel Geld haben Person A und B zusammen
    kohleAusgaben = Alle Ausgaben zusammen gerechnet
    partyGeld = was bleibt von dem ganzen Geld übrig

    Hier der HTML teil:

    PHP:
    < form action = "insert.php"  method = "post"

    <
    table  class= "beispiel01"  cellspacing = "0"  cellpadding = "0" >

    <
    caption > Gehalt </ caption >

    <
    thead >< tr >
    <
    th > Person1 </ th >
    <
    th > Person2 </ th >
    </
    tr ></ thead >

    <
    tbody >
    <
    tr >
    <
    td >< input type = "text"  name = "gehaltPerson1"  value = "gehaltPerson1" ></ td >
    <
    td >< input type = "text"  name = "gehaltPerson2"  value = "gehaltPerson2" ></ td >
    </
    tr >
    </
    tbody >

    </
    table >

    <
    table  class= "beispiel01"  cellspacing = "0"  cellpadding = "0" >

    <
    caption > Wohnung </ caption >

    <
    thead >< tr >
    <
    th > Miete </ th >
    <
    th > Strom </ th >
    <
    th > Wasser </ th >
    </
    tr ></ thead >

    <
    tbody >
    <
    tr >
    <
    td >< input type = "text"  name = "miete"  value = "miete" ></ td >
    <
    td >< input type = "text"  name = "strom"  value = "strom" ></ td >
    <
    td >< input type = "text"  name = "wasser"  value = "wasser" ></ td >
    </
    tr >
    </
    tbody >

    </
    table >

    <
    table  class= "beispiel01"  cellspacing = "0"  cellpadding = "0" >

    <
    caption > Monatliche Leistungen </ caption >

    <
    thead >< tr >
    <
    th > Handy </ th >
    <
    th > DSL </ th >
    <
    th > TV </ th >
    </
    tr ></ thead >

    <
    tbody >
    <
    tr >
    <
    td >< input type = "text"  name = "Handy"  value = "Handy" ></ td >
    <
    td >< input type = "text"  name = "DSL"  value = "DSL" ></ td >
    <
    td >< input type = "text"  name = "TV"  value = "TV" ></ td >
    </
    tr >
    </
    tbody >

    </
    table >

    <
    table  class= "beispiel01"  cellspacing = "0"  cellpadding = "0" >

    <
    caption > Versicherungen </ caption >

    <
    thead >< tr >
    <
    th > Auto - Versicherung </ th >
    <
    th > Haftpflicht </ th >
    <
    th > Rechtschutz </ th >
    </
    tr ></ thead >

    <
    tbody >
    <
    tr >
    <
    td >< input type = "text"  name = "versicherungAuto"  value = "versicherungAuto" ></ td >
    <
    td >< input type = "text"  name = "versicherungHaftpflicht"  value = "versicherungHaftpflicht" ></ td >
    <
    td >< input type = "text"  name = "versicherungRechtschutz"  value = "versicherungRechtschutz" ></ td >
    </
    tr >
    </
    tbody >

    </
    table >

    <
    table  class= "beispiel01"  cellspacing = "0"  cellpadding = "0" >

    <
    caption > Sonstiges </ caption >

    <
    thead >< tr >
    <
    th > Auto - Steuern </ th >
    <
    th > Fitness Studio </ th >
    <
    th > Sonstiges </ th >
    </
    tr ></ thead >

    <
    tbody >
    <
    tr >
    <
    td >< input type = "text"  name = "steuern"  value = "steuern" ></ td >
    <
    td >< input type = "text"  name = "fitness"  value = "fitness" ></ td >
    <
    td >< input type = "text"  name = "sonstiges"  value = "sonstiges" ></ td >
    </
    tr >
    </
    tbody >

    </
    table >

    <
    table  class= "beispiel01"  cellspacing = "0"  cellpadding = "0" >

    <
    caption > Sonstige Einnahmen </ caption >

    <
    thead >< tr >
    <
    th > Gesamt </ th >
    <
    th > Ausgaben </ th >
    <
    th > Party Geld </ th >
    </
    tr ></ thead >

    <
    tbody >
    <
    tr >
    <
    td >< input type = "text"  name = "einnahmen01"  value = "einnahmen01" ></ td >
    <
    td >< input type = "text"  name = "einnahmen02"  value = "einnahmen02" ></ td >
    <
    td >< input type = "text"  name = "einnahmen03"  value = "einnahmen03" ></ td >
    </
    tr >
    </
    tbody >

    </
    table >

    <
    table  class= "beispiel01"  cellspacing = "0"  cellpadding = "0" >

    <
    caption > Money </ caption >

    <
    thead >< tr >
    <
    th > Gesamt </ th >
    <
    th > Ausgaben </ th >
    <
    th > Party Geld </ th >
    </
    tr ></ thead >

    <
    tbody >
    <
    tr >
    <
    td >< input type = "text"  name = "kohleGesamt"  value = "kohleGesamt" ></ td >
    <
    td >< input type = "text"  name = "kohleAusgaben"  value = "kohleAusgaben" ></ td >
    <
    td >< input type = "text"  name = "partyGeld"  value = "partyGeld" ></ td >
    </
    tr >
    </
    tbody >

    </
    table

    <
    input type = "submit"  />
    </
    form >

    </
    body >
    </
    html >
    und hier der PHP teil:

    PHP:
    <? php
    $con 
    mysql_connect ( "localhost" , "abc" , "def" );
    if (!
    $con )
      {
      die(
    'Could not connect: '  mysql_error ());
      }
      
    mysql_select_db ( "finanzplan" $con );

    $sql = "INSERT INTO Finanzplan (miete, strom, wasser, Handy, DSL, TV, sonstiges, versicherungAuto, versicherungHaftpflicht, versicherungRechtschutz, steuern, fitness, gehaltPerson1, gehaltPerson2, kohleAusgaben, kohleGesamt, partyGeld, einnahmen01, einnahmen02, einnahmen03, einnahmen04)
    VALUES
    ('
    $_POST [ miete ] ',' $_POST [ strom ] ',' $_POST [ wasser ] ',' $_POST [ Handy ] ',' $_POST [ DSL ] ',' $_POST [ TV ] ',' $_POST [ sonstiges ] ',' $_POST [ versicherungAuto ] ',' $_POST [ versicherungHaftpflicht ] ',' $_POST [ versicherungRechtschutz ] ',' $_POST [ steuern ] ',' $_POST [ fitness ] ',' $_POST [ gehaltPerson1 ] ',' $_POST [ gehaltPerson2 ] ',' $_POST [ kohleAusgaben ] ',' $_POST [ kohleGesamt ] ',' $_POST [ partyGeld ] ',' $_POST [ einnahmen01 ] ',' $_POST [ einnahmen02 ] ',' $_POST [ einnahmen03 ] ',' $_POST [ einnahmen04 ] ')" ;

    if (!
    mysql_query ( $sql , $con ))
      {
      die(
    'Error: '  mysql_error ());
      }
    echo 
    "1 record added" ;

    ?> 
    Die Sachen sollen erst berechnet werden und dann soll es die Option geben, dass man die Sachen in die Datenbank schreiben kann. Diese Option soll aber erst erscheinen, wenn man die Sachen einmal berechnen lassen hat.

    Würde mich über jede Hilfe sehr freuen.

    BW is natürlich drin!!

    Gruss
    Dw4rf
     
  2. 8. September 2011
    AW: & [MySQL] Rechnen im Formular

    schau dir das mal an:
    jQuery Calculation Plug-in

    sollte das sein was du suchst ...
     
  3. 9. September 2011
    AW: & [MySQL] Rechnen im Formular

    Also ich würde es wie folgt machen:
    • Eine Funktion zum Berechnen der Daten schreiben
    • Die Funktion an das Event onblur für die Input-Felder binden
    • Und dann eine Variable setzen, die via onsubmit beim Absenden des Formulars geprüft wird und wenn gerechnet wurde, soll das Formular abgesendet werden..

    Momentan hörts sich so an, als wenn du das nur für dich bauen würdest..
    Aber wenn du das für anderen Nutzen ins Netz stellen solltest, musst du bedenken, dass der User kein Javascript an haben könnte und dadurch das Feld leer bleibt.
    Oder dass der User bewusst in das Feld, was eigtl errechnet werden soll falsche Werte einträgt.

    MfG
     
  4. 9. September 2011
    AW: & [MySQL] Rechnen im Formular

    Wenn du die 3 Werte bereits beim Eintragen sichtbar haben möchtest, dann mach es mit Javascript und stell die Felder auf "Readonly", dabei vergibst du aber nur IDs aber keine "name" Attribute. Somit sind die Werte zwar sichtbar, werden aber nicht an den Server übertragen.

    Serverseitig lässt du die 3 Werte berechnen und eintragen. Damit unterbindest du die Manipulation durch andere Benutzer.
     
  5. 9. September 2011
    AW: & [MySQL] Rechnen im Formular

    Mit dem "disabled"-Attribut werden die Daten auch nicht übertragen, unabhängig von name- und ID-Attribut.
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.