Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabelle aus DB editieren ?

Einklappen

Neue Werbung 2019

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

  • Tabelle aus DB editieren ?

    Hallo, liebe PHPler

    Die Frage ist für euch wahrscheinlich einfach, dennoch ists für mich eine schier unlösbare Aufgabe

    Ich hab ne Tabelle in der DB,

    diese kann ich mit einem Formular ergänzen, und wenn ich es dann aktualisiere, dann wird sie unten drunnter angezeigt.
    Soweit so gut!

    Wie aber stelle ich es an ,das ich ein Feld dieser Tabelle, editieren kann ?

    Muss ich noch in der DB-Tabelle ein weiteres Feld hinzufügen ( Quasi eine ID o.ä. ? )

    (ID | Int | 11 | not Null | auto-increment )

    ich hab mich schon umgeschaut, aber trotzdem fehlt mir der richtige ansatz!
    Ich weiß garnicht wo anfangen


  • #2
    Mit dem SQL Befehl UPDATE!

    PHP-Code:
    <?php
    $con 
    mysql_connect("localhost","peter","abc123");
    if (!
    $con)
      {
      die(
    'Could not connect: ' mysql_error());
      }

    mysql_select_db("my_db"$con);

    mysql_query("UPDATE Persons SET Age = '36'
    WHERE FirstName = 'Peter' AND LastName = 'Griffin'"
    );

    mysql_close($con);
    ?>

    Kommentar


    • #3
      Ich bin noch ziemlich blutiger Anfänger, bin aber auf dem Weg die Blutung zu stoppen
      anders gesagt, wie füge ich den die UPDATE SQL ein bzw wo?

      PHP-Code:
            <form action="adminpruef.php" method="post">
                  <table>
                      <tr>
                           <td width="150px">Ort:</td>
                          <td><input type="text" size="24" maxlength="30" name="ort" value="<?php echo $nachname?>"></td>
                      </tr>
                                      <tr>
                           <td width="150px">Datum:</td>
                          <td><input type="text" size="24" maxlength="30" name="datum" value="<?php echo $nachname?>"></td>
                      </tr>
                      <tr>
                           <td width="150px">Uhrzeit:</td>
                          <td><input type="text" size="24" maxlength="30" name="zeit" value="<?php echo $nachname?>"></td>
                      </tr>
                      <tr>
                           <td width="150px">Artikel:</td>
                          <td> <textarea name="text" maxlength="10000" cols="19" rows="9"></textarea></td>
                      </tr>                
                  </table><br/>
                  <input type="submit" value="Speichern">
                  
      <?php
      include("connect.php");
      mysql_select_db("crimson007") or die ("Datenbank konnte nicht ausgewählt werden");
                
      $abfrage='SELECT * FROM Programmtabelle';
      $ergebnis=mysql_query($abfrage);
      ?>

      <table width="500" cellpadding="0" cellspacing="0" border="1">


      <?php

        
      while($row=mysql_fetch_object($ergebnis)){
          echo 
      '<tr>'."\r\n";

          echo 
      '<td> <p> '.$row->datum.' </p>  <p> '.$row->ort.' </p>  <p> '.$row->zeit.'  </p></td>'."\r\n";
          
          
          echo 
      '<td>'.$row->text.'</td>'."\r\n";

          echo 
      '<tr>'."\r\n";
        }

      ?>
      </table>
      die DB wird mit der connect.php verbunden


      das UPDATE sollte man "Formular-Mäßig" (entschuldigung, weiß nicht genau wie mann das nennt) umändern können

      Kommentar


      • #4
        Deine Variable $Variable beinhaltet die mysql statements.

        Gibt im Internet genug Tutorials, wie man was mit MySQL und PHP machen kann.
        Look at This!
        Digital-Duty.DE
        Für Syntax-Fehler übernehme ich keine Haftung!

        Kommentar


        • #5
          Zitat von Crimson007 Beitrag anzeigen
          Muss ich noch in der DB-Tabelle ein weiteres Feld hinzufügen ( Quasi eine ID o.ä. ? )

          (ID | Int | 11 | not Null | auto-increment )

          ich hab mich schon umgeschaut, aber trotzdem fehlt mir der richtige ansatz!
          Ich weiß garnicht wo anfangen
          Ja, eine ID bietet sich an. So als grobe Vorgehensweise:

          Bei der Ausgabe der Datensätze erzeugst du noch mit eben dieser ID einen Link zum Ändern.
          PHP-Code:
          echo '<a href="?id='.$row->id.'">änden</a>'
          Wenn das Formular jetzt mit dem GET-Parameter erstmalig aufgerufen wird, musst du den Datensatz erst auslesen und stellst diese Daten im Formular dar und schreibst die id in ein Hiddenfield, ansonsten lässt du die Felder leer.

          Wenn das Formular abgeschickt wurde (Submit-Button), dann kannst du anhand des Post-Parameters id wiederum entscheiden, ob du ein Update oder Insert ausführen musst.

          Kommentar


          • #6
            ok editieren ist nun möglich , nur das löschen nicht?!

            PHP-Code:
            <?php
                
            // Verbindung zur Datenbank herstellen
                
            require_once 'connect.php';

             
            // übergebene Daten zurück in die Datenbank schreiben
                
            if (isset($_POST[submit_eingabemaske]))    // Submit-Schaltfläche der Eingabemaske wurde betätigt
                
            {
                    
            // SQL-Kommando: Ändern von Einträgen
                    
            $sql="UPDATE Programmtabelle SET ort='$_POST[ort]', datum='$_POST[datum]',  zeit='$_POST[zeit]',  text='$_POST[text]'
                                WHERE id=
            $_POST[id]";
                                
                    
            $sql="DELETE FROM Programmtabelle SET ort='$_POST[ort]', datum='$_POST[datum]',  zeit='$_POST[zeit]',  text='$_POST[text]'
                                WHERE id=
            $_POST[id]";
                    

                    
                    
            // SQL-Kommando ausführen
                    
            mysql_query($sql) or die("Fehler im SQL-Kommando $sql");

                }



                
            // SQL-Anfrage: Ergebnis ist eine vorhandene Tabelle
                
            $sql="SELECT * FROM Programmtabelle";

                
            // Anfrage ausführen
                
            $result=mysql_query($sql) or die("Fehler im SQL-Kommando $sql");

                
            // Tabelle in HTML darstellen
                
            echo "<table width=\"500\" border=\"1\">\n";
                while (
            $row=mysql_fetch_row($result))
                {
                    echo 
            "<tr>";
                    foreach (
            $row as $item)    // jedes Element $item der Zeile $row durchlaufen
                        
            echo "<td>$item</td>";
                    echo 
            "<td><a href=\"eingabemaske.php?id=$row[0]\">bearbeiten</td>";
                    echo 
            "<td><a href=\"eingabemaske.php?id=$row[0]\">l&ouml;schen</td>";
                    
                    echo 
            "</tr>\n";
                }
                echo 
            "</table>\n";
            ?>

            ist es möglich das in einer PHP, UPDATE und DELETE FROM enthalten sind ?

            denn wenn ich delete hinzufüge , zeigt er meine fehlermeldung, Fehler im SQL-Kommando $sql" auf

            bin schon so lange am grübeln wo der Fehler ist ?!

            Kommentar


            • #7
              Ja, das tut er, weil Dein DELETE-Statemtne eben falsch ist. Man kann sich nicht einfach eine Syntax ausdenken. Und nun:

              http://www.php.de/php-einsteiger/489...rundlagen.html
              --

              „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


              • #8
                okay, nun heißt es nur noch
                PHP-Code:
                $sqlDELETE="DELETE FROM Programmtabelle
                                    WHERE id=
                $_POST[id]"
                dennoch kommt immernoch die gleiche Fehlermeldung
                ich bin ja nebenher am PHP u SQL befehle lernen, das war nur eine frage, ich mein der Link ist auch nicht ganz ohne

                Kommentar


                • #9
                  SQL Fehler kann man auch richtig anzeigen lassen. Tausendfach wird in diesem Board auch mysql_error() hingewiesen.
                  --

                  „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


                  • #10
                    ich habe 2 verschiedene Eingabemasken erstellt
                    sprich:
                    update befehl in einem script
                    delete im andren script


                    wenn es doch mögl. ist, die 2 befehle in einem script unterzubringen, werde ich es in den nächsten tage erfahren

                    Kommentar


                    • #11
                      Ja. Nur ist es so, wie Du es machst nicht sinnvoll.
                      --

                      „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


                      • #12
                        Ja das dachte ich mir auch schon
                        aber wie gesagt , früher oder später werde ich noch auf nen grünen Zweig kommen
                        danke

                        p.S.

                        wen es intressiert....
                        nach jedem neuen eintrag wird oberhalb eine neue leere farbige zeile eingefügt
                        bildlich:
                        ------------------------------------------------------------------------------------
                        |1. farbige Zeile die sich selbst erstellt hat aufgrund einer, im Formular erstellten Zeile 2.|
                        ------------------------------------------------------------------------------------
                        |2. eingegebene Zeile per Formular,wird auch angezeigt |
                        ------------------------------------------------------------------------------------
                        |3. farbige Zeile die sich selbst erstellt hat aufgrund einer, im Formular erstellten Zeile 4.|
                        ------------------------------------------------------------------------------------
                        |4. eingegebene Zeile per Formular,wird auch angezeigt |
                        ------------------------------------------------------------------------------------

                        Script:
                        PHP-Code:
                        <table width="100%" cellpadding="10" cellspacing="0" border="0">

                        <?php

                          
                        while($row=mysql_fetch_object($ergebnis)){
                            
                            echo 
                        '<tr>'."\r\n";
                            echo 
                        '<td colspan="2" bgcolor="#F2D000" height="15px"> </td>'."\r\n";
                            echo 
                        '<tr>'."\r\n";

                            echo 
                        '<tr>'."\r\n";
                            echo 
                        '<td>'.$row->datum.' <br> <br> 
                            '
                        .$row->ort.' <br>  <br> 
                            '
                        .$row->zeit.'</td>'."\r\n";
                            echo 
                        '<td>'.$row->text.'</td>'."\r\n";
                            echo 
                        '<tr>'."\r\n";
                          }

                        ?>
                        </table>

                        Kommentar

                        Lädt...
                        X