Ankündigung

Einklappen
Keine Ankündigung bisher.

Mit MySQL Datensätze ändern klappt nicht

Einklappen

Neue Werbung 2019

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

  • Mit MySQL Datensätze ändern klappt nicht

    Hey Leute,
    ich will eine Seite machen auf der man Datensätz aus einer Datenbank ändern kann und diese wieder abspeichern kann. Das kann man ja mit dem UPDATE-Befehl umsetzten.
    Die Daten sollen in einem Formular dargestellt und geändert werde. Das Auslesen und darstellen im Formular klappt. Doch wenn ich etwas ändere und dann auf speichern klicke werden die Datensätz rausgelöscht, auch die Sachen die ich nicht bearbeitet habe werden gelöscht.

    Code:

    Code:
    <?php
    	if (isset($_POST['submit'])&& $_POST['submit'] == 'Speichern')
    	{
    		$id = !empty($_GET['id']) ? $_GET['id'] : 'FEHLER';
    		mysql_connect('localhost', 'root', 'jo12na12s12') or die(mysql_error());
    		mysql_select_db('kapp') or die(mysql_error());
    
    		$aendern = "UPDATE besmeld SET Aussteller = '$aussteller', Firma = '$firma' WHERE ID = '22'"; 
    		$update = mysql_query($aendern) or die(mysql_error());
    		header('location:aendern.php');
    	}
    ?>
    <html>
    <head>
      <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    
    <body>
      <div class="header">
        <h1 class="headline">Besuchermeldungen anlegen</h1>
      </div>
      <div >
    <form class="formu" action="" method="post" >
          <table>
          	<?php 
          	include("db.php");
          	$id = !empty($_GET['id']) ? $_GET['id'] : 'FEHLER';
          	$query = "SELECT * FROM besmeld WHERE ID = '22'";
          	$result = mysql_query($query);
          	while ($row = mysql_fetch_object($result)){
          		$aussteller = $row->Aussteller;
          		$firma = $row->Firma;
          	}?>
            <tr>
                <td style="width: 170px;"> Aussteller</td> <td><input name="aussteller" type="text" maxlength="100" size="53" value="<?php echo $aussteller ?>"> </td>
            </tr>
    
    //AB HIER UNWICHTIG
            <tr>
                <td>Standort</td> <td><SELECT NAME="standort">
                                       <OPTION>Niles
                                       <OPTION>Kapp
                                       </SELECT></td>
            </tr>             
            <tr>
                <td>Firma</td>  <td> <textarea name="firma" cols="40" rows="5"> <?php echo $firma ?></textarea>
            </tr> 
            <tr>
                <td>Besucher</td> <td> <textarea name="besucher" cols="40" rows="5"></textarea>
            </tr>
        </table>
        <table>
            <tr>
             <td style="width: 170px;"> Besuch am: </td>   
             <td> <input name="tagb" type="text" maxlength="2"  size="2">Tag </td>
             <td> <input name="monatb" type="text" maxlength="2" size="2">Monat</td>
             <td> <input name="jahrb" type="text" maxlength="4"size="2">Jahr </td>
            </tr>
        </table>
        <table>   
            <tr>
             <td style="width: 170px;"> Ankunft </td>   
             <td> <input name="ankunft" type="text" maxlength="100"> Stunden:Minuten &#x007C; SS:MM</td>
            </tr>   
        <table>
            <tr>
             <td style="width: 170px;">Abreise am: </td>   
             <td> <input name="taga" type="text" maxlength="2"  size="2">Tag </td>
             <td> <input name="monata" type="text" maxlength="2" size="2">Monat</td>
             <td> <input name="jahra" type="text" maxlength="4"size="2">Jahr </td>
            </tr>
        </table>
        <table>
             <td style="width: 170px;"> Abfahrt </td>   
             <td> <input name="abfahrt" type="text" maxlength="100"> </td>
            </tr> 
            <tr>
                <td>Betrifft</td> <td> <textarea name="betrifft" cols="40" rows="5"></textarea></td>
            </tr>  
            <tr>
                <td>Besucherraum</td> <td> <input name="besucherraum" type="text" maxlength="200" list="raueme" size="30">
                  <datalist id="raueme">
                     <option value="Ferienkalender">
                    <option value="K2T Raum B 0.1(B)">
                    <option value="K2T Raum B 0.2(B)">
                    <option value="K2T Raum B 1.1">
                    <option value="K2T Raum B 2.1">
                    <option value="K2T Raum K 1.1(B)">
                    <option value="KAPP1 Raum 110">
                    <option value="KAPP1 Raum 201(B)"> 
                    <option value="KAPP1 Raum 206">
                    <option value="KAPP1 Raum 207(B)">
                    <option value="KAPP1 Raum 208(F)">
                    <option value="KAPP1 Raum 209">
                    <option value="KAPP1 Raum 210(B)">
                    <option value="Kapp1 Raum 403(F)">
                    <option value="KAPP1 Raum 408(B)">
                    <option value="KAPP1 Raum E01(B)">
                    <option value="KAPP1 Raum E02(B)">
                    <option value="KAPP1 Raum E09">
                    <option value="KAPP1 Raum H5-1">
                    <option value="KAPP1 Raum H5-2">
                    <option value="KAPP1 Raum H5-3">
                    <option value="KAPP1 Raum H62(B)">
                    <option value="KAPP1 Raum T24">
                    <option value="KAPP1 Schulungsraum 1">
                    <option value="KAPP1 Schulungsraum 2">
                    <option value="KAPPUSA Meeting Room 1">
                    <option value="NILES Raum 2211, ZOG">
                    <option value="NILES Raum 3101, VEG Einkauf">
                    <option value="NILES Raum 3116, VEG ggü Sek.">
                    <option value="NILES Raum 3122, VEG Kopfende"> 
                    <option value="Niles Schulungsraum Hall 3">
                    <option value="N-ITE-URLAUB">  
                    </datalist>  
                </td>
            </tr>
            <tr>
                <td>Zimmerreservierung</td> <td> <textarea name="zimmerres" cols="40" rows="5"></textarea> </td>
            </tr>  
            <tr>
                <td>Im Hotel</td> <td> <textarea name="hotel" cols="40" rows="5"></textarea> </td>
            </tr>
            <tr>
                <td>Zu Lasten</td> <td> <textarea name="zulasten" cols="40" rows="5"></textarea> </td>
            </tr>
            <tr>
                <td><p title="z.B. Wlan-Gutschein, Beamer etc. n&ouml;tig">Bemerkung</p></td> <td> <textarea name="bemerkung" cols="40" rows="5" ></textarea> </td>
            </tr> 
            <tr>
                <td>Betreuung durch</td> <td> <textarea name="betreuung" cols="40" rows="5"></textarea> </td>
            </tr> 
            <tr>
                <td>Bewirtung<br>
                <a href="bewirtungsformular.php" target="_blank">Bewirtungsformular</a></td> <td> <textarea name="bewirtung" cols="40" rows="5"></textarea> </td>
            </tr>  
            <tr>
                <td>Fahnen hissen</td> <td> <textarea name="fahnen" cols="40" rows="5"></textarea> </td>
            </tr> 
            <tr>
                <td>Fahrbereitschaft</td> <td> <textarea name="fahr" cols="40" rows="5"></textarea> </td>
            </tr>
            </table>
       
    
    
    
            <br>
        
            <div class="buttons">
           <input type="submit" value="Speichern" name="submit">
               <input type="reset" value=" Abbrechen">
    
            </div>
         </form>
           <br><br><br><br>
         <a href="index.html" class="back">Zur&uuml;ck</a>
          <br><br><br><br> <br>
      </div>
    </body>
    
    </html>
    Ich würde gern PHP-Code in PHP-Tags schreiben aber leider ist der Code im HTML-Code enthalten. Geht das im Forum das man das verschachtelt?


  • #2
    HTML kann mit in die PHP-Tags

    PHP-Code:
    $aendern "UPDATE besmeld SET Aussteller = '$aussteller', Firma = '$firma' WHERE ID = '22'"
    $aussteller und $firma wurden zu dem Zeitpunkt nicht definiert. Ich seh aber gerade nicht, warum andere Datensätze als die 22 betroffen sein sollten.
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      Hi,

      Ich würde gern PHP-Code in PHP-Tags schreiben aber leider ist der Code im HTML-Code enthalten. Geht das im Forum das man das verschachtelt?
      Einfach nur PHP Tags rum - das reicht.

      PHP-Code:
              mysql_connect('localhost''root''jo12na12s12') or die(mysql_error());
              
      mysql_select_db('kapp') or die(mysql_error()); 
      veraltet. PDO oder mysqli nutzen.

      PHP-Code:
      $aendern "UPDATE besmeld SET Aussteller = '$aussteller', Firma = '$firma' WHERE ID = '22'"
      Warum übergibst du mit GET eine id (die nicht validiert wird) und dann trägst du mit nem festen ID Wert Daten ein?? Anbei: dein Formular übeträgt Daten per POST. Woher kommen diese Variablen: $aussteller usw.? Du musst Dir die POST werte erst holen, validieren und dann eintragen!

      PHP-Code:
      include("db.php"); 
      Was passiert hier? Wird hier auch nochmal separat zur DB verbunden?

      PHP-Code:
      <td><SELECT NAME="standort">
                                         <
      OPTION>Niles
                                         
      <OPTION>Kapp
                                         
      </SELECT></td
      Bitte Syntax anschauen, wie eine Selectbox richtig(!) aufgebaut wird. Im weiteren Quellcode sind noch einige Syntax Fehler...

      mfg wolf29
      while (!asleep()) sheep++;

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

      Kommentar


      • #4
        Zitat von wolf29 Beitrag anzeigen



        PHP-Code:
        $aendern "UPDATE besmeld SET Aussteller = '$aussteller', Firma = '$firma' WHERE ID = '22'"
        Warum übergibst du mit GET eine id (die nicht validiert wird) und dann trägst du mit nem festen ID Wert Daten ein?? Anbei: dein Formular übeträgt Daten per POST. Woher kommen diese Variablen: $aussteller usw.? Du musst Dir die POST werte erst holen, validieren und dann eintragen!

        PHP-Code:
        include("db.php"); 
        Was passiert hier? Wird hier auch nochmal separat zur DB verbunden?


        mfg wolf29
        Die ID 22 hab ich nur zum testen eingesetzt damit's schneller geht. Und ja damit verbindet sie sich nochmal ... ich weiß nicht ob man das braucht. Ich weiß mein Code it ziehmlich konfus.

        Die Variablen kommen doch aus der Datenbank. Die hab ich in einem anderne Formular schon eingetragen.

        Kommentar


        • #5
          Da kommt gar nichts aus der Datenbank, $aussteller und $firma werden nicht definiert. In der Datenbank bei ID 22 werden also immer leere Strings gespeichert.

          Mit der Datenbank verbinden brauchst du nur einmal, das schreibst du am besten ganz an den Anfang.

          Außerdem:
          PHP-Code:
          header("location:aendern.php");

          //So machen:

          header("Location: aendern.php");
          exit;

          //Dein Script schickt sonst das ganze HTML-Zeug noch hinterher 

          Kommentar


          • #6
            Muss ID = '22' nicht eigentlich id = 22 ohne Apostroph sein? Sonst wird doch angenommen das es sich um ein String hält. Wenn deine ID Spalte integer ist, wäre das schlecht.

            Kommentar


            • #7
              Zitat von Fuel Beitrag anzeigen
              Muss ID = '22' nicht eigentlich id = 22 ohne Apostroph sein? Sonst wird doch angenommen das es sich um ein String hält. Wenn deine ID Spalte integer ist, wäre das schlecht.
              Ist egal. Sollte auch so gehen.
              Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

              Kommentar

              Lädt...
              X