Ankündigung

Einklappen
Keine Ankündigung bisher.

DB-Update nicht direkt sichtbar?

Einklappen

Neue Werbung 2019

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

  • DB-Update nicht direkt sichtbar?

    Ich rufe im "Backend" eine Seite auf,wo mir dann erst einmal alle Datensätze der jeweiligen Tabelle angezeigt werden. Die Veränderung in der Datenbank per Update auf die Tabelle findet ebenfalls im else-Block statt. Mein Problem dabei ist, dass der Datensatz zwar normal geändert wird, aber nicht direkt angezeigt wird. Ich muss die Seite einmal aktualisieren, damit die Änderung sichtbar ist.

    PHP-Code:
    if($_POST["aendernTeams"]){
      
    // Hier wird der Datensatz nach seinen Bedürfnissen angepasst. Verschickt wird das Formular über den Button "aendernTeams2".
    }else{
      if(
    $_POST["aendernTeams2"]){
        
    // Hier soll erst der Datensatz geupdated werden
      
    }

      
    // Anzeige der Datensätze aus der Datenbank.Möglichkeit die Datensätze      über einen Button zu ändern (z.B. "aendernTeams")

    Kann ich das UPDATE selber in dem Else-Block machen, damit er es auch direkt anzeigt, oder müsste ich die Struktur folgendermaßen aufbauen?

    PHP-Code:
    if($_POST["aendernTeams"]){
      
    // Hier wird der Datensatz nach seinen Bedürfnissen angepasst. Verschickt wird das Formular über den Button "aendernTeams2".
    }else if($_POST["aendernTeams2"]){
        
    // Hier soll erst der Datensatz geupdated werden
    }else{
      
    // Anzeige der Datensätze aus der Datenbank.Möglichkeit die Datensätze      über einen Button zu ändern (z.B. "aendernTeams")



  • #2
    Hallo,

    nachdem du hier nur Code-Fragmente mit irgendwelchen Kommentaren gepostet hast ist es schwierig dir zu helfen.

    Warum brauchst du zwei Steps um die Daten zu ändern? Wenn du die Daten falls keine $_POST-Variabele gesetzt ist einfach nur anzeigst, könntest du Sie doch im Fallle das $_POST['aendernTeams2'] gesetzt ist ändern.

    Thoretisch schaut das korrekt aus, du änderst die Daten erst und liest Sie dann aus aber ohne deinen tatsächlichen Code wird es schwierig mehr dazu zu sagen!
    Gruß,
    SebTM

    Kommentar


    • #3
      Ich habe mal eben ein Beispiel angefertigt:
      PHP-Code:
      <?php
          
      if($_POST["AendernButton"]){
              
      $select $mysqli->query("SELECT id,name FROM namen ");
              
              if(
      $select->num_rows>0){
                  while(
      $abfrage=select->fetch_assoc()){
                      echo 
      "
                          <form action='admin.php?modul=namen' method='post'>
                              <table>
                                  <tr>
                                      <td>ID</td>
                                      <td>"
      .$abfrage["id"]."</td>
                                  </tr>
                                  <tr>
                                      <td></td>
                                      <td><input type='text' name='changeValueName' value='"
      .$abfrage["name"]."'"</td>
                                      <
      input type='hidden' name='changeValueID' value='".$id."'>
                                  </
      tr>
                              </
      table>
                          </
      form>
                      
      ";
                  }
              }
          }else{      
              if(isset(
      $_POST["AendernButton2"])){
                  
      $updateActive = $mysqli->prepare("UPDATE namen SET name='".$_POST["changeValueName"]."' WHERE id '".$_POST["changeValueID"]."'");
                  
      $updateActive->execute();
                  
                  if(
      $updateActive->affected_rows >=1){
                      echo "
      Datensatz angepasst";
                  }

              }

              
      $result = $mysqli->query($'SELECT * FROM namen order by id');
              
            echo "
              
      <form action='admin.php?modul=namen' method='post'>
                  <
      table>
            
      ";

            if(
      $result->num_rows > 0){
              while(
      $abfrage = $result->fetch_assoc()){
                  
      $id = $abfrage['id'];
                  
      $name = $abfrage['name'];

                  echo"
                        
      <tr class='standard'>
                          <
      td$id </td>
                          <
      td$name</td>
                              <
      input type='hidden' name='aendernID' value='$id'>
                              <
      td><input  type='submit' name='AendernButton' value='&Auml;ndern'></td>                    
                        </
      tr>
                  
      ";
              }
            }
             echo "
                  
      </table>
              </
      form>
             
      ";
           }
      ?>
      In "aendernTeams" würde ich den Datensatz anpassen. Also im else-Block klicke ich den Datensatz an um ihn in "aendernTeams" meinen Bedürfnissen nach, anzupassen.

      Kommentar


      • #4
        PHP-Code:
        $updateActive $mysqli->prepare("UPDATE namen SET name='".$_POST["changeValueName"]."' WHERE id = '".$_POST["changeValueID"]."'"); 
        Pfui !! Schaue dir dringend noch einmal ein besseres Tutorial zu prepared Statements an!!

        PS: Kann es sein, dass du wieder nur einen Ausschnitt gepostet hast? Falls nein sollte dein PHP-Interpreter einen Syntaxfehler anzeigen..
        mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
        PHP-Code:
        echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

        Kommentar


        • #5
          Allein schon an der Farbe von den PHP Code Tags hier solltest du sehen das du einen Syntax Fehler hast...

          Schau dir auch nochmal Debugging an: http://www.php.de/wiki-php/index.php...ging:Leitfaden

          Kommentar

          Lädt...
          X