Daten ändern

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

  • Daten ändern

    Hi!

    Ich habe nochmal ein Problem, bei dem ich einfach nicht weiterkomme.
    Ich hoffe, dass mir jemand helfen kann.

    Folgendes:

    Ich habe ein Ändern-Script programmiert, das aber nicht funktioniert:
    Mit der folgenden Datei, kann der Datensatz ausgewählt werden:


    PHP-Code:
    <form action='./aendernform.php' method='post'> 
    <select name="update"> 
    <?PHP 
    $query
    ="SELECT * FROM vera"
    $result=mysql_query($query); 
    while(
    $zeile mysql_fetch_array($result)){ 
    echo 
    "<option value=$zeile[id]>$zeile[head]</option>"

    ?> 
    </select>

    <input type='submit' name='next' value='Aktualisieren'> 
    </form>
    Bis hier her geht alles einwandfrei.
    Nun sollen aber die Daten abgerufen werden in:

    aendernform.php:

    PHP-Code:
    <?
      include("db2.php");
      ?>

    <? 
    $query="Select FROM vera WHERE ID =  " . $update; 
    mysql_query($query); 
    ?> 


    <html>

    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=iso-8859-1">
    <title>aktualisieren</title>
    </head>

    <body bgcolor="#FFFFFF">

    <p>Bitte Daten eingeben:</p>

    <table border="0"><form action="update2.php" 
    method="post">
        <tr>
            <td>Datum:</td>
            <td><input type="text" size="20" name="datum"><td>
        </tr>
    <tr>
            <td>Überschrift:</td>
            <td><input type="text" size="20" name="kopf"></td>
        </tr>
        <tr>
            <td>Text:</td>
            <td><textarea name="text" rows="3" cols="60"></textarea></td>
        </tr>
    <tr>
            <td>Bildname:</td>
            <td><input type="text" size="20" name="images"><td>
        </tr>
    <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        
        <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="eintrag" value="Abschicken"> <input
            type="reset" name="loeschen" value="Löschen"></td>
        </tr></form>
    </table>
    Nun die Frage, wie muß ich die einzelnen Daten abrufen und wie sieht dann die update2.php aus ?

    Danke für die Hilfe.

    Elch5

  • #2
    du mußt den Datensatz bei Editieren selektieren, wenn du also im ersten Bereich die Daten holst, hast du ja die ID des Datensatzes, übergib die in einer Variable an das Edit Skript.

    In deinem Skript
    PHP-Code:
    $query="Select FROM vera WHERE ID =  " $update
    Schau doch mal ob beim Ersten aufruf die Value im Select gesetzt wird.

    Kommentar


    • #3
      sorry aber noch ein Fehler in deinem Editier Forumlar

      PHP-Code:
      <td><input type="text" size="20" name="datum"><td
      mach mal folgendes Draus

      PHP-Code:
      <td><input type="text" size="20" name="datum" value="$datum"><td
      setzt in jedes input ein value mit der entsprechenden Variable die dort angezeigt werden soll.

      Kommentar


      • #4
        so ?

        du mußt den Datensatz bei Editieren selektieren, wenn du also im ersten Bereich die Daten holst, hast du ja die ID des Datensatzes, übergib die in einer Variable an das Edit Skript.

        In deinem Skript


        PHP:--------------------------------------------------------------------------------
        $query="Select FROM vera WHERE ID = " . $update;

        --------------------------------------------------------------------------------

        Schau doch mal ob beim Ersten aufruf die Value im Select gesetzt wird.


        so ?:

        <select name="$update">

        Kommentar


        • #5
          jupp und damit natürlich auch der Inhalt der anderen Felder angezeigt wird machst du dies für jede Variable etwa so:

          PHP-Code:
          <?
            include("db2.php");
            ?>

          <? 
          $query="Select FROM vera WHERE ID =  " . $update; 
          mysql_query($query); 
          ?> 


          <html>

          <head>
          <meta http-equiv="Content-Type"
          content="text/html; charset=iso-8859-1">
          <title>aktualisieren</title>
          </head>

          <body bgcolor="#FFFFFF">

          <p>Bitte Daten eingeben:</p>

          <table border="0"><form action="update2.php" 
          method="post">
              <tr>
                  <td>Datum:</td>
                  <td><input type="text" size="20" name="datum" value="$datum"><td>
              </tr>
          <tr>
                  <td>Überschrift:</td>
                  <td><input type="text" size="20" name="kopf" value="$kopf"></td>
              </tr>
              <tr>
                  <td>Text:</td>
                  <td><textarea name="text" rows="3" cols="60">$text</textarea></td>
              </tr>
          <tr>
                  <td>Bildname:</td>
                  <td><input type="text" size="20" name="images" value="$images"><td>
              </tr>
          <tr>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
              </tr>
              
              <tr>
                  <td>&nbsp;</td>
                  <td><input type="submit" name="eintrag" value="Abschicken"> <input
                  type="reset" name="loeschen" value="Löschen"></td>
              </tr></form>
          </table>
          so wird der zu editierende Inhalt der einelnen Felder auch angezeigt, natürlich musst du die value="$xyz" in die die du beim auslesen definierst umbenennen.

          Kommentar


          • #6
            Müßte dann so aussehen

            Hi!

            es funktioniert noch nicht. Aber es müßte doch so aussehen, oder ?

            PHP-Code:
             <? 
            $query="SELECT datum, kopf, text, images FROM vera WHERE id=" . $update; 
            mysql_query($query); 
            ?>
            PHP-Code:
            <td><input type="text" size="20" name="datum" value="$datum"><td
            Gruß Elch5

            Kommentar


            • #7
              jupp so wie es aussieht wird in der Variable $update nichts übergeben, weshalb er auch keine Daten ausgeben kann.

              Kommentar


              • #8
                Re: Müßte dann so aussehen

                Original geschrieben von Elch5
                ... Aber es müßte doch so aussehen, oder ?
                ...
                PHP-Code:
                <td><input type="text" size="20" name="datum" value="$datum"><td
                Gruß Elch5
                nö!

                1.
                wenn du variablen im html-quelltext ausgibst, dann bitte z.B. so:
                PHP-Code:
                <td><input type="text" size="20" name="datum" value="<? echo $datum; ?>"><td>
                sonst steht im value="" einfach nur $datum und NICHT 2003-05-26.

                2.
                $datum und alle anderen haben noch keinen inhalt nach deiner query.
                also:
                PHP-Code:
                $query="Select * FROM vera WHERE ID = ".$update
                $result mysql_query($query) or die (mysql_error()); 
                // wertzuweisung 
                $datum mysql_result($result,0,"datum");
                // dasselbe mit den anderen feldern 
                3.
                es ist schlauer, fomularwerte so auszulesen: $_POST['update']

                4.
                mal hier vorbeizuschauen:
                http://www.mysql.de/doc/de/index.html
                http://de.php.net
                http://www.selfphp.info
                Kissolino.com

                Kommentar


                • #9
                  HI!

                  Das ganze sieht jetzt so aus:

                  PHP-Code:
                  <? 
                  $query="SELECT * FROM vera WHERE id=" . $update; 
                  $result = mysql_query($query) or die (mysql_error()); 
                  // wertzuweisung 
                  $datum = mysql_result($result,0,"datum");
                  $kopf = mysql_result($result,0,"kopf");
                  $text = mysql_result($result,0,"text");
                  $images = mysql_result($result,0,"images");
                  // dasselbe mit den anderen feldern
                  ?>
                  nur leider kommt bei mir folgende Meldung:
                  You have an error in your SQL syntax near '' at line 1

                  an was könnte das liegen ?

                  Gruß Elch5

                  Kommentar


                  • #10
                    PHP-Code:
                    $query="SELECT * FROM vera WHERE id='".$update."'"
                    versuchs mal bitte damit
                    Kissolino.com

                    Kommentar


                    • #11
                      Jetzt kommt zwar das Formular aber folgende Meldung:

                      Warning: Unable to jump to row 0 on MySQL result index 2 in /www/htdocs/vera/aendernform.php on line 9

                      Warning: Unable to jump to row 0 on MySQL result index 2 in /www/htdocs/vera/aendernform.php on line 10

                      Warning: Unable to jump to row 0 on MySQL result index 2 in /www/htdocs/vera/aendernform.php on line 11

                      Warning: Unable to jump to row 0 on MySQL result index 2
                      in /www/htdocs/vera/aendernform.php on line 12

                      Ich check das nicht, eigentlich müßte es doch jetzt gehen...

                      Kommentar


                      • #12
                        scheint so, dass $update leer ist.

                        zum testen:
                        PHP-Code:
                        echo $_POST['update'];  // ist was drin???

                        $query="SELECT * FROM vera WHERE id='".$_POST['update']."'"
                        $result mysql_query($query) or die (mysql_error()); 

                        if(
                        mysql_numrows($result) > 0// nur wenn ergebnis aus db, dann werte zuweisen
                        {
                        // wertzuweisung 
                        $datum mysql_result($result,0,"datum");
                        $kopf mysql_result($result,0,"kopf");
                        $text mysql_result($result,0,"text");
                        $images mysql_result($result,0,"images");

                        Kissolino.com

                        Kommentar


                        • #13
                          Stimmt, denn jetzt wird das Formular ausgegeben, aber ohne Value-Werte.
                          Hmm, dann muß mein Fehler wohl in der Auswahldatei liegen:

                          <form action='./aendernform.php' method='post'>
                          <select name="$update">
                          PHP-Code:
                          <?PHP 
                          $query
                          ="SELECT * FROM vera"
                          $result=mysql_query($query); 
                          while(
                          $zeile mysql_fetch_array($result)){ 
                          echo 
                          "<option value=$zeile[id]>$zeile[kopf]</option>"

                          ?>
                          </select>

                          <input type='submit' name='next' value='Ändern'>
                          </form>

                          Aber nur wo? Könntest du mir nochmal helfen ?
                          1000 Dank!

                          Gruß Elch5

                          Kommentar


                          • #14
                            guckst du mal ganz genau hin
                            PHP-Code:
                            <select name="$update"> ???? => <select name="[B]update[/B]"

                            echo 
                            "<option value=\"".$zeile[id]."\">".$zeile[kopf]."</option>"
                            btw: ein blick in den html-quelltext kann wunder wirken
                            Kissolino.com

                            Kommentar


                            • #15
                              Super. Jetzt funktioniert es!

                              Noch eine Frage (meine letzte!) hätte ich.
                              aendernform.php ruft ja jetzt update.php auf:

                              PHP-Code:
                              <?
                                $aendern = "UPDATE vera Set datum=('$datum'), head=('$kopf'), text=('$text'), images=('$images')";
                                ?>
                              <?
                                $update = mysql_query($aendern);
                                ?>
                              Das Ändern funktioniert auch, aber wie kann ich ihm sagen, dass er nicht alle Einträge ändern soll, sondern nur den ausgewählten (also die ID mitübergeben wird) ?

                              Danke

                              Gruß Elch5

                              Kommentar

                              Lädt...
                              X