Ankündigung

Einklappen
Keine Ankündigung bisher.

REPLACE Funktion

Einklappen

Neue Werbung 2019

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

  • REPLACE Funktion

    hi leute,


    habe eine datenbank in der ich sowohl neue "objekte" anlegen will, als auch alte "objekte" verändern will.

    habe das bei mysql mit der REPLACE funktion versucht, aber irgendwo schein ich da einen fehler zu haben.


    mein INSERT klappt und die $_GET wird auch übergen.

    wäre dankbar wenn mir jemand einen tip geben könnte.


    PHP-Code:
    if(isset($_POST["gesendet"])) //wenn Daten gesendet wurden wird gespeichert


        if(empty(
    $_GET["id"])) { //neuer eintrag
        

            
    mysql_connect("""root");
            
    mysql_select_db("vermietung");
            
            
    $sqlab"INSERT INTO vertrag";
            
    $sqlab.= "(mieter, vorname, nachname, tel, raum, kaltmiete, nebenkosten, qm, info";
            
    $sqlab.= ") values ";
            
    $sqlab.= "('" $_POST["mieter"] . "', ";
            
    $sqlab.= "'" $_POST["vorname"] . "', ";
            
    $sqlab.= "'" $_POST["nachname"] . "', ";
            
    $sqlab.= "'" $_POST["tel"] . "', ";
            
    $sqlab.= "'" $_POST["raum"] . "', ";
            
    $sqlab.= "'" $_POST["kaltmiete"] . "', ";
            
    $sqlab.= "'" $_POST["nebenkosten"] . "', ";
            
    $sqlab.= "'" $_POST["qm"] . "', ";
            
    $sqlab.= "'" $_POST["info"] . "')";
            
            
    mysql_query($sqlab);
            
            
    $nummysql_affected_rows();
            if(
    $num>0)
            {
                echo 
    "<h2 align= 'center'><font color='0000FF'>";
                echo 
    "Danke für die Eingabe</h2><p>";
                echo 
    "</font>";
            }
            else
            {
                echo 
    "<h2 align= 'center'><font color='#ff0000'>";
                echo 
    "Es ist ein Fehler aufgetreten</h2><p>";
                echo 
    "</font>";
            }
        }
        else 
    //update (id ist gesetzt)
        
    {
            
            
    mysql_connect("""root");
            
    mysql_select_db("vermietung");
            
            
    $sqlab"REPLACE INTO vertrag WHERE id='" $_GET["id"] . "'";
            
    $sqlab.= "(mieter, vorname, nachname, tel, raum, kaltmiete, nebenkosten, qm, info";
            
    $sqlab.= ") values ";
            
    $sqlab.= "('" $_POST["mieter"] . "', ";
            
    $sqlab.= "'" $_POST["vorname"] . "', ";
            
    $sqlab.= "'" $_POST["nachname"] . "', ";
            
    $sqlab.= "'" $_POST["tel"] . "', ";
            
    $sqlab.= "'" $_POST["raum"] . "', ";
            
    $sqlab.= "'" $_POST["kaltmiete"] . "', ";
            
    $sqlab.= "'" $_POST["nebenkosten"] . "', ";
            
    $sqlab.= "'" $_POST["qm"] . "', ";
            
    $sqlab.= "'" $_POST["info"] . "')";
            
            
    mysql_query($sqlab);
            
            
    $nummysql_affected_rows();
            if(
    $num>0)
            {
                echo 
    "<h2 align= 'center'><font color='0000FF'>";
                echo 
    "Danke für die Eingabe</h2><p>";
                echo 
    "</font>";
            }
            else
            {
                echo 
    "<h2 align= 'center'><font color='#ff0000'>";
                echo 
    "Es ist ein Fehler aufgetreten</h2><p>";
                echo 
    "</font>";
            }
        }



  • #2
    Zitat von php_1975 Beitrag anzeigen
    wäre dankbar wenn mir jemand einen tip geben könnte.
    Tipp: Liefere eine Problembeschreibung. „Funzt nich“ ist keine.


    Und informiere dich, wie man vernünftig Erfolgskontrolle/Fehlerbehandlung betreibt, wenn mit MySQL gearbeitet wird.

    Kommentar


    • #3
      Hi.

      Was für einen Fehler gibt er aus und schon mal was von SQL Injection gehört?

      PHP: SQL Injection - Manual

      Hast ernste Sicherheitslücken bei Dir! Warum machst Du REPLACE und nicht den UPDATE Befehl? Wo sind deine Objekte?

      Wolf29
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        mein problem:
        wenn ich kein $_GET übergebe so speichert er mir all die sachen die ich eintrage, doch wenn ich ein $_GET übergebe so erstellt er ein neues "objekt" anstatt das alte nur zu ändern.
        mit $_GET übergebe ich ihm die ID vom objekt und will das er dieses bestimmte objekt ändert und nicht etwas neues in die datenbank einfügt.

        @wolf29:
        - UPDATE klappt auch nicht.
        - die sachen gehen (noch) nicht online von daher hab ich mir da keine gedanken gemacht, aber danke für deinen hinweis.

        Kommentar


        • #5
          Hi.

          Du wurdest ja von mir (und ChrisB) schon darauf hingewiesen, dass wir eine genaue Fehlerbeschreibung brauchen. Was gibt Dir der Browser für eine Fehlermledung aus? Füge sonst oben (2. oder 3. Zeile) mal

          error_reporting(E_ALL);


          ein. Dann spuckt er Dir mögliche Fehler aus. Zudem solltest Du beachten, was ChrisB geschrieben hat in Bezug auf Fehlerausgabe/-abfangen etc.

          Wolf29

          P.S. Wie sieht dein UPDATE Befehl aus? Er müsste so ungefähr aussehen: http://sql.1keydata.com/de/sql-update.php
          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar


          • #6
            Dein Script hat keinerlei Fehlerprüfung. Ich schlage vor, Du fängst damit an. Dann sagt Dir SQLauch, was los ist.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Zitat von php_1975 Beitrag anzeigen
              wenn ich kein $_GET übergebe so speichert er mir all die sachen die ich eintrage, doch wenn ich ein $_GET übergebe so erstellt er ein neues "objekt" anstatt das alte nur zu ändern.
              Und was hast du bisher unternommen, um zu untersuchen, warum ...?

              - UPDATE klappt auch nicht.
              Das war jetzt bitte das letzte Mal, dass du ein solches Null-Statement von dir gibst, OK? Danke.

              Kommentar

              Lädt...
              X