Problem bei der Übergabe von Werten aus einer Datebank in ein Formular

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

  • Problem bei der Übergabe von Werten aus einer Datebank in ein Formular

    Hab zwar schon mehrere Sachen hier im Forum gefunden zum betroffenen Thema, konnten mir aber nicht weiterhelfen.
    Und zwar ich hab folgenden Code:

    PHP-Code:
    <? 
    include("connectDB.inc.php");

    $result = "SELECT * FROM news ORDER BY id DESC";
    $ergebnis = @mysql_query($result, $connect);

    while ($news = mysql_fetch_array($ergebnis)) {
    echo "<a href=\"#\"><tr><td>".$news['id']."</td>";
    echo "<td>".$news['titel']."</td>";
    echo "<td>".$news['inhalt']."</td></tr></a>";

    }

    ?>
    und darunter steht mein Formular in dem dann nach klick auf den gewünschten beitrag der Inhalt gefüllt werden soll...
    hab es schon mit mehreren Varianten probiert
    wenn ich die ID zb per URL übergebe und im Formular dann $_GET verwende funktioniert es... aber es is doch bestimmt keine schöne lösung die ganze News inkl. Titel und Inhalt per URL zu übergeben.

    kann mir jemand sagen wie das funktioniert? ich glaub das es an meinem href liegt, aber ich einfach nicht weis was ich dafür verwenden soll bzw. die Daten in das Formular übergebe...

    hier noch mein Formular:

    PHP-Code:
    <table>
    <tr><td>
                    <form action="<? $_PHP['self']?>" method="post">
                     Newstitel:
            </td>
                         <td><input type="text" size="27" value="<?=$news['titel']; ?>" name="titel"> <br><br> </td>
    </tr>
    <tr>
            <td>
                    Newstext:
            </td>
            <td>
                      <textarea cols="20" rows="15" name="inhalt"><?=$news['inhalt'?></textarea>
                                   <br><br> 
            </td>
    </tr>
    <tr>
                    <td>
                    <input type="submit" name="bearbeiten" value="&Uuml;bernehmen"> 
                    <td>
    </tr>
    </form>
    </table>

  • #2
    Kein SQL-Problem! *verschieb*

    so wie ich dich verstehe, willst du also eine Liste mit DS machen. wenn du auf einen davon klickst, dann soll der im Formular darunter erscheinen.

    Dafür musst du natürlich nicht alle Daten per GET übergeben. Vorallem, weil du da an deinen Grenzen stoßen wirst.

    Also übergibst du nur die ID (die wird so lange nicht sein).
    Bevor du das Formular ausgibst, liest du den entsprechenden DS aus und füllst das Form damit.

    Feddisch!

    Kommentar


    • #3
      ja und wie würde das aussehen
      ich hab echt keine ahnung wie das gehen soll
      die id hab ich ja bereits ausgelesen
      aber wie bring ich des per klick auf den DS in des form?

      Kommentar


      • #4
        lies dir das noch mal durch und überleg mal. wenn u alle ds ausgeben kannst, kannst wohl auch einen ausgeben.

        Kommentar


        • #5
          ja schon aber des is ja von id zu id verschieden
          weis einfach ned wie ich des href definieren muss

          des array $news lässt sich auch ned verwenden bzw. ist durch das href irgendwie nicht ansprechbar

          hast du denn nicht nen anhaltspunkt bzw. ein schnipsel code der mir helfen könnte?

          thx schonmal für deine hilfe

          Kommentar


          • #6
            schritt für schritt!

            Achtung: es folgt ein Tutorial nur für dich!!!

            1.) auflistung aller DS. (kannst du)
            1a.) da fügst du jeweils einen link ein auf php_self?id=$row['id']

            2.) if($_GET[id])
            2a.) auslesen des datensatzes where id=$_GET[id]
            2b.) formular mit geholten daten ausgeben

            3.) else
            3a.) ausgeben des formulars ohne daten

            Kommentar


            • #7
              ja schon aber des is ja von id zu id verschieden
              Deswegen programmiert man mit PHP übrigens dynamische Seiten!

              Kommentar


              • #8
                vielen Dank, der Ansatz hat mir gefehlt

                danke danke danke

                Kommentar


                • #9
                  freut mich! Viel erfolg!

                  Kommentar


                  • #10
                    so bin jetzt schon ein ganzes stück weiter
                    jetzt steh ich noch vor einem doofen problem an dem ich schon seit einigen Tagen scheiter...

                    wenn ich einen Beitrag jetzt editiert dann läd er in die Textfelder immer noch den alten beitrag. erst wenn ich dann aktualisiere wird es übernommen!

                    Wie kann ich die Felder nach dem klicken auf editieren bzw. löschen leeren?
                    Mit z.B. $inhalt = "" oder mit dem array davor geht es nicht

                    hier mal der code:

                    PHP-Code:
                    <? if($_GET['id']) {
                                $select = "SELECT * FROM news WHERE id=".$_GET['id'];
                                $result = mysql_query($select, $connect);
                                $line = mysql_fetch_array($result);
                                
                    ?>
                    </table>
                    <br><br>
                    <center>
                    <table>
                    <tr><td>
                                    <form method="post" action="<? $_PHP["self"] ?>">
                                     Newstitel:
                            </td>
                                         <td><input type="text" size="27" value="<? echo $line['titel']; ?>" name="titel"> 
                                                      <br><br>
                                    </td>
                    </tr>
                    <tr>
                            <td>
                                    Newstext:
                            </td>
                            <td>
                                      <textarea cols="50" rows="10" name="inhalt"><? echo $line['inhalt']; ?></textarea>
                                                   <br><br> 
                            </td>
                    </tr>
                    <tr>
                                    <td>
                                    <input type="submit" name="bearbeiten" value="News editieren" tabindex="1"> 
                                    </td>
                                    <td>
                                    <input type="submit" name="loeschen" value="News l&ouml;schen" tabindex="2"> 
                                    </td>
                    </tr>
                    </form>
                    </table>
                    </center>
                    <? } 

                    if($bearbeiten) {

                            $update = "UPDATE news SET titel='$titel', inhalt='$inhalt' WHERE id='$id'";
                            mysql_query($update, $connect);
                            
                            echo "<center><b>Datensatz erfolgreich aktualisiert!</b></center>";
                            
                            $titel = "";
                            $inhalt = "";
                            }
                            
                    elseif($loeschen) {

                            $delete = "DELETE FROM news WHERE id='$id'";
                            mysql_query($delete, $connect);
                            
                            echo "<center><b>Datensatz erfolgreich gelöscht!</b></center>";


                            }
                            
                    ?>
                    </body>
                    </html>
                    also wie bekomm ich das hin das er die Felder leert und der aktuelle Beitrag aufgelistet wird?

                    Kommentar


                    • #11
                      Mit Javascript:
                      document.formular.inhalt.value=''

                      Mit PHP und der $inhalt wirst du das nicht schaffen, da die Datei zu dem Zeitpunkt ja längst geparst und der Buffer ausgegeben, ist...

                      Kommentar


                      • #12
                        Original geschrieben von perfi
                        PHP-Code:
                        if($_GET['id']) {

                                    
                        $select "SELECT * FROM news WHERE id=".$_GET['id']; 
                        if($_GET['id'] && !$bearbeiten)
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          noe so funktioniert es nicht wahsaga... leider. Aber versteh auch den hintergrund nicht ganz was des bewirken soll

                          und des mit javascript war mir jetzt auch a bissl spanisch
                          is des bei document.formular.inhalt.value (sind da meine daten einzutragen)

                          plz help

                          Kommentar


                          • #14
                            ja so gehts, ich habs

                            PHP-Code:
                            header('Location:datei.php'); 

                            Kommentar

                            Lädt...
                            X