Bräuchte mal Hilfe

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

  • Bräuchte mal Hilfe

    Hallo,

    ich hab da ein kleines Problem.
    Ich will mit Insert etwas in eine Datenbank schreiben und glichzeitig die Team IDs aus einer anderen Tabelle abfragen. Ich weiß nicht ob es funktioniert.

    Hintergrund:
    Alle Teams sollen ein Budget bekommen mit der Summe x.... was auch funktioniert, nur die Eintragung in den Kontoauszug klappt nicht.


    if(isset($_POST["submit_budgetaenderung"])):
    $team_id = mysqli_query($connection,"SELECT team_id FROM s_teams WHERE aktiv = '1' AND nationalteam = '2'");
    $budgetveraenderung = mysqli_real_escape_string($connection,$_POST["budgetveraenderung"]);
    $veraenderungsart = mysqli_real_escape_string($connection,$_POST["veraenderungsart"]);
    $grund = mysqli_real_escape_string($connection,$_POST["grund"]);

    if($veraenderungsart == 1):
    mysqli_query($connection,"INSERT INTO b_konto (team_id, typ, kategorie, betrag, grund, datum) VALUES ('$team_id', '2', '7', '$budgetveraenderung', '".mysqli_real_escape_string($connection,$grund)."', '$time')");
    mysqli_query($connection,"UPDATE s_teams SET budget = budget + '$budgetveraenderung' ");

    $protokollaktion = "Budgeterhöhung ".getTeamVonTeamID($team_id);
    Protokolleintragung($_SESSION["user_id"],$_SESSION["ip"],$_SESSION["browser"],$protokollaktion,$time);

  • #2
    Im fett markierten ist der Fehler.

    Kommentar


    • #3
      Zitat von NightFireDeath Beitrag anzeigen
      Im fett markierten ist der Fehler.
      Der Fehler? Mir fallen da mehrere auf ...

      Es wäre hilfreich, wenn du dich mit der grundlegenden Syntax von PHP beschäftigen würdest. Wenn du schon die alternative Schreibweise (mit Doppelpunkt) für if-Statements benutzt, dann muss auch irgendwo ein "endif" auftauchen. Deinem Code-Teilstück kann man so nicht entnehmen, ob die beiden If-Statements verschachtelt sind.

      Zeichenketten in doppelte Hochkommas (") einzuschließen, sollte sich auf die Fälle beschränken, wo der Inhalt von Variablen eingebaut werden muss. In allen anderen Fällen (speziell für konstante Ausdrücke) genügen einfache Hochkommas (').

      Das Zusammenkleben von Zeichenketten zu SQL-Queries führt über kurz oder lang zu SQL-Injections (siehe auch). Sicherer ist die Verwendung von Platzhaltern in parametrisierten Queries. Dann werden auch die mysqli_real_escape_string()-Aufrufe überflüssig.

      Darüberhinaus sehe ich keine Auswertung des Erfolgs deiner mysqli_query()-Aufrufe. Datenbank-Anfragen (speziell die mit DML-Statements wie INSERT und UPDATE) können auch fehlschlagen.
      Zuletzt geändert von fireweasel; 06.04.2018, 12:48. Grund: typo
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar

      Lädt...
      X