2017-09-28 4 views
1

Ich bin es wieder :) Ich bin fast fertig mit meinem Projekt theres nur noch eine Sache übrig. Ich bin nicht in der Lage, Werte in meiner Datenbank mit PDO zu aktualisieren. das ist mein SkriptPDO Update Benutzerinformationen Anfrage

<a 
href="?UpdateUser=' .$ID. '" 
class="btn btn-sm btn-icon btn-pure btn-default on-default edit-row" 
data-original-title="Bearbeiten" 
ref="" data-toggle="modal" data-target="#EditUser"> 
<i class="icon wb-edit" aria-hidden="true"></i></a> 

<div class="modal fade" id="EditUser" aria-hidden="false" aria-labelledby="EditUserModal" 
       role="dialog" tabindex="-1"> 
        <div class="modal-dialog modal-simple modal-center"> 
        <form class="modal-content" method="POST" role="form" action=""> 
         <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
          <span aria-hidden="true">×</span> 
         </button> 
         <h4 class="modal-title" id="EditUserModal">Benutzer bearbeiten</h4> 
         </div> 
         <div class="modal-body"> 
         <div class="row"> 
          <div class="col-xl-12 form-group"> 
          <p><b>Username</b></p> 
          <input type="text" class="form-control" name="username" value="'.$username.'"> 
          </div> 
          <div class="col-xl-4 form-group"> 
           <p><b>Vorname</b></p> 
          <input type="text" class="form-control" name="vorname" value="'.$vorname.'"> 
          </div> 
          <div class="col-xl-8 form-group"> 
          <p><b>Nachname</b></p> 
          <input type="text" class="form-control" name="nachname" value="'.$nachname.'"> 
         </div> 
         <div class="col-xl-8 form-group"> 
         <p><b>Email</b></p> 
          <input type="email" class="form-control" name="email" value="'.$email.'"> 
          </div> 
          <div class="col-xl-4 form-group"> 
          <p><b>TelefonNr.</b></p> 
          <input type="text" class="form-control" name="handy" value="'.$handy.'"> 
          </div> 
          <div class="col-xl-12 form-group"> 
          <p><b>Admin</b></p> 
          <input type="text" class="form-control" name="admin" value="'.$admin.'"> 
          </div> 
          <div class="col-md-12 float-right"> 
          <button class="btn btn-primary btn-outline" data-dismiss="modal" type="submit">Speichern</button> 
          </div> 
         </div> 
         </div> 
        </form> 
        </div> 
       </div> 
      </td> 
          </tr>'; 
      } 
      if(isset($_POST['UpdateUser'])) 
      { 
       if($_POST['UpdateUser']) 
       { 
       $stmt = $odb->execute("UPDATE Account SET username = '$username' , vorname = '$vorname', nachname = '$nachname', email = '$email', handy = '$handy', admin = '$admin' WHERE id=? "); 
       } 
       echo "<meta http-equiv='refresh()' content='0'>"; 
      } 

bin ich eine falsche Abfrage zu tun? oder warum aktualisiert es nicht? Es wird kein Fehler auf der Seite angezeigt, aber die Werte werden weder aktualisiert noch aktualisiert.

+0

'WO ID =?' Wo binden Sie die Variable dafür? –

+0

@JayBlanchard Ich bin nicht sicher, ich bin nicht so vertraut mit all dem:/wenn Anweisungen und Anleitungen zu folgen – Escobar

Antwort

0

Sie müssen prepare vor execute verwenden, wie folgt aus:

$query = 'UPDATE Account SET 
      username = :username, 
      vorname = :vorname, 
      nachname = :nachname, 
      email = :email, 
      handy = :handy, 
      admin = :admin 
      WHERE id = :id'; 

$stmt = $pdo->prepare($query); 

$stmt->execute(array(
     ':username' => $username, 
     ':vorname' => $vorname, 
     ':nachname' => $nachname, 
     ':email' => $email, 
     ':handy' => $handy, 
     ':admin' => $admin, 
     ':id'  => $id 
)); 

Auch besser ist Platzhalter für jeden Eingabewert zu verwenden, statt Schreibvariablen innerhalb der Query-String.

Und jetzt habe ich herausgefunden dies:

Sie sind eine Form unter Verwendung von Daten mit der Methode POST zu senden und zu versuchen, $_POST['UpdateUser'] zu lesen, das Update zu starten Ausführung, aber in dieser Form gibt es kein Feld UpdateUser genannt. Sie müssen diesen Wert innerhalb des Formulars hinzufügen, oder ändern Sie die if (isset($_POST['UpdateUser'])) mit einem anderen Feld.

+0

versuchten es, Ihre Lösung sieht wirklich sauber aus, ich sollte versuchen, in dieser Struktur in Zukunft zu bleiben, aber es hat nicht funktioniert tho, immer noch dasselbe passiert [hier] (https://gyazo.com/6e982c2aca2fff2eb72e7f307e4d6d72) – Escobar

+0

können Sie den gesamten Code posten? es scheint, als ob etwas zu Beginn fehlt –

+0

hier hochgeladen rohen Code zu [Pastebin] (https://pastebin.com/TGETMxkH) – Escobar