Rechnungen mit Datensätzen

  • Hallo, ich habe ein Problem mit einer Rechnung. UNd zwar würde ich gerne Das Guthaben von allen Usern in der Datenbank ausrechnen lassen. Ich hab dazu ne MySQL Datenbank wo das alte Budget und die Ausgaben der User stehen. Hab dann folgendes probiert $rechnung1=$dsatz['Budget'] - $dsatz['Ausgaben']; bekomm jedoch kein Ergebniss mehr zurück. Habe schon peer google gesucht und selbst probiert, bekomm es aber nicht hin, dass er mir das ergebniss ausgibt. Hab zwar minimale WIssens über pHP aber es funktioniert leider nicht. Wäre nett wenn mir jemand helfen könnte und sich nicht über den Code lächerlich macht. Über Verbesserungsvorschläge hätte ich ejdoch nichts einzuwenden :)



    Hätte da auch noch ein 2 Problem. Und zwar habe ich ein Formular wo ich werte übergebe. Auf der Seite wo ich dann hinkomme habe ich das Formular nochmal drinnen und darunter die ergebnisse. Jetzt würde ich es gerne so haben, dass die gesuchten Parameter wider im Formular auf der 2 Seite eingestellt sind. Geht sowas?

    Einmal editiert, zuletzt von Fussl1 (4. Januar 2012 um 01:42)

  • Solange ein Script nicht fertig und getestet ist, gehören diese beiden Zeilen an den Anfang:

    PHP
    error_reporting(E_ALL);
      ini_set("display_errors", true);


    Bei Datenbankabfragen sollte man immer auf Fehler prüfen:

    PHP
    $res = mysql_query($sqlab)
         or die ("MySQL-Error: " . mysql_error());

    Und ja, man kann Formularfelder mit Werten vorbelegen, weitere Infos unter http://de.selfhtml.org/html/formulare/index.htm

    Einmal editiert, zuletzt von Bandit (4. Januar 2012 um 07:57)

  • So, habe dein script mal schnell, auf den ersten Blick, berichtigt. Versuch mal das, es sollte jetzt funktionieren, du hattest ein paar fehler was die Reihenfolge etc. betrifft:

    MfG

  • Das liefert dir auch einen MySQL-Fehler, den du auch nicht richtig abfängst.

  • Wenn du meinen Beitrag davor gelesen hättest, wüsstest du, was in dem Script fehlt und MySQL würde dir dann schon sagen, was ihm nicht passt.

    <edit>
    Und jetzt hast du einen Parse-Error eingebaut


    </edit>

    Einmal editiert, zuletzt von Bandit (4. Januar 2012 um 13:40)

  • Hi,
    Danke euch beiden, hab nun den Aufbau geändert und auch die beiden Zeilen zur Fehlerüberprüfung mit eingefügt. Die Methode von Bandit klingt einleuchtend und funktioniert auch. Habe es mit einfachen zahlen probiert. Nun würde ich gerne 2 Summen die ich errechnen lasse, voneinander abziehen. Jedoch bekomme ich dabei immer folgende Fehlermeldung:

    PHP
    MySQL-Error: Unknown column 'sum(CQRanking)' in 'field list'
    PHP
    SELECT `TeamID`, `FahrerID`, `Jahr`, `Vorname`, `Nachname`, `Fahrerland`, sum(`KM`) Summe,  sum(Etappenzahl) `Summe1`, sum(`CQRanking`) `Summe2`, (`sum(CQRanking)` / `Etappenzahl`) as `rechnung1` FROM CQ_Ergebnisse

    Dass ist meine SELECT Zeile. Der Fehler liegt also hier: (`sum(CQRanking)` / `Etappenzahl`) as `rechnung1`. Hab schon einiges probiert, komm aber nicht auf die richtige Lösung.


    Zum 2 Problem. Ich kann einen Wert vorgeben, der wird dann auch angezeigt. Ich möchte ja gern den Wert wider drinnen stehen haben, den ich zuvor abgeschickt habe. Da ist mir nur die Get Methode bis jetzt bekannt. Wird sicherlich noch andere geben, jedoch sind mir diese nicht bekannt. Ich habe es probiert jedoch bekomm ich immer nur die Anweisung als Textfeld. Was mache ich falsch?

    PHP
    <form action = "Fahrersuche1.php" method = "get">
       <input name ="fahrersuchevorname" value= $_GET['fahrersuchevorname']/> Vorname

    ich hoffe der kurze ausschnitt reicht um den Fehler zu erkennen

  • Was du falsch machst ist, dass du PHP-Code im HTML-Kontext ausführen willst. Das geht nicht. Du musst dem Parser schon genau sagen wann php kommt und er parsen muss, und wann er sich nen lauen Lenz schieben kann.
    Wenn short_open_tags auf deinem Server aktiviert sind kannst du schreiben

    PHP
    <input name="fahrersuchvorname" value="<?=$_GET['fahrersuchevorname']?>"/>


    ansonsten die lange Variante

    PHP
    <input name="fahrersuchvorname" value="<?php echo $_GET['fahrersuchevorname']?>"/>

    Zu dem SQL-Fehler: Die Backticks gehören nur um den Spaltennamen, nicht um den gesamten Ausdruck mit sum(), dadurch sucht er nach einer Spalte die eben `sum(CQRanking)`heißt. Korrekt wäre sum(`CKRanking`).
    Ich glaube du könntest da aber auch schon auf `summe2` zurückgreifen.

    Edit: Mal so nebenbei, nach was für Kriterien setzt du überhaupt die Backticks in deinem SQL-Code? Wird das ausgewürfelt? :D

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    2 Mal editiert, zuletzt von SinnlosS (5. Januar 2012 um 01:10)