Boubou: Daten aus einem Formular dem anderen übergeben

Hallo alle zusammen ich hab da eine Frage. Ich hab ein formular in der eine Tabelle ist mit Daten. So jetzt hab ich an der Tabelle eine spalte mit Icons z.B. einen Stift zum bearbeiten der Daten ein x zum löschen der Daten. Ich sende dem 2. Formular die Variable mit der ID Nummer damit er weiss welchen Inhalt er bearbeiten soll in der Tabelle. mit this.$row.submit();. So die Daten müssen allerdings jetzt im 2. formular in den Eingabefeldern angezeigt werden. Wie bei PHP myadmin wenn ich auf bearbeiten klicke zeigt er mir den Inhalt dieser ID in den Eingabefeldern an. Tja er sendet die Daten aber er zeigt die mir in meinen Eingabefeldern nicht an. So sieht es im 2.Formular aus

<p>Anrede:<br><input  value="<?php echo("{$row['Anrede']}");?>" name="Anrede" size="30" maxlength="30"></p> helft mir bitte.

  1. Was zeigt er denn bei
    <?php
        echo count($row); // darf nicht 0 sein wenn er die Daten richtig übergibt.
        echo $row['Anrede']; // Sollte die Anrede ausgeben
    ?>
    an ?

  2. Mahlzeit Boubou,

    Ich sende dem 2. Formular die Variable mit der ID Nummer damit er weiss welchen Inhalt er bearbeiten soll in der Tabelle. mit this.$row.submit();.

    Wo und wie nutzt Du diesen mehr als merkwürdig aussehenden "Befehl"? Ist Dir vielleicht der - zeitliche und örtliche - Unterschied zwischen serverseitigem PHP-Skript und clientseitigem Javascript nicht ganz klar? Mehr Code, bitte ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Hallöchen,

    Ich nehme an, dass du einfach gesagt Daten aus deiner SQL Datenbank bearbeiten oder löschen möchtest, ohne phpMyAdmin öffnen zu müssen.
    Ein einfaches Adminscript also.

    Bsp: im Browser

    --------------------------admin.php---------(index)
    Anrede  |    Name    |     Alter                |
    ___________________________________________________________________
    Herr    |   Miguel   |     unbekannt ;-)        |<bearbeiten>|<löschen>

    --------------------------bearb.php------------------

    und wenn du auf bearbeiten klickst:
    ----------------------------

    Anrede:      |___Herr____|
    Name:        |__Miguel___|
    Alter:       |unbekannt ;-)|

    <speichern><verwerfen>
    ---------------------------------------------------------------------
    während es in der SQL Datenbank so aussieht:
    -------------------MySQL----------
    ID|Name  |Alter
    _____________________
    1 |Miguel|unbekannt;-)
    2 |Horst |42

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

    wie du siehst ist das schema relativ einfach.
    jetzt musst du nur noch wissen was du willst.
    Was willst du, wenn du auf <bearbeiten> klickst? (bei mir ist <bearbeiten> kein  Button, sondern ein Link. Du kannst nehmen was du willst.)

    admin.php:

    <?php

    mysql_connect("localhost","usr","pwd");
           mysql_select_db("test");

    $abfrage="SELECT * FROM test ORDER BY id";
           $ergebnis=mysql_query($abfrage);
    .............
    das ist erst mal klar

    weiter:

    ..............
           while($row = mysql_fetch_array($ergebnis))
                {
           printf('
           <table border="0">
           <td align="left" width="1000">%s</td>
           <td align="right"><a href="bearb.php?id=%d">Bearbeiten</a>
           <td align="right"><a href="del.php?id=%d">L&ouml;schen</a>
           </td></table><hr>',
           $row["name"],
           $row["id"],
           $row["id"]);
                 }
    ................
    das sollte auch klar sein. Wichtig ist: href="bearb.php?id=%d".
    _________________

    und in bearb.php schreibst du das formular wie du es haben willst.
    ABER am Anfang:
    <?php

    mysql_connect("localhost","usr","pwd");
    mysql_select_db("test");

    $abfrage="SELECT * FROM test WHERE Id='".$_GET['id']."'";
    $ergebnis=mysql_query($abfrage);
    Kleiner auszug:

    echo "<input type="hidden" name="Name" value="".$row['Name']."">";
    ___________________
    Mit $_GET['id'] ruft der die jeweiligen Daten aus der Datenbank. in dem Fall "1".
    Mit $row['Name'] füllt er das formular. in dem fall "Miguel"
    und so weiter.
    jetzt kannst du ändern was du willst und Speichern.

    1. Mahlzeit Miguel,

      $abfrage="SELECT * FROM test ORDER BY id";
             $ergebnis=mysql_query($abfrage);
      .............
      das ist erst mal klar

      Nö. "SELECT *" ist IMMER die schlechteste aller Möglichkeiten. Lass Dir nur die Felder ausgeben, die Du auch haben willst.

      printf('
             <table border="0">
             <td align="left" width="1000">%s</td>
             <td align="right"><a href="bearb.php?id=%d">Bearbeiten</a>
             <td align="right"><a href="del.php?id=%d">L&ouml;schen</a>
             </td></table><hr>',
             $row["name"],
             $row["id"],
             $row["id"]);

      Behandle Daten immer dem Kontext entsprechend. Dein Kontext in diesem Fall ist HTML. Demzufolge solltest Du die Rohdaten aus der Datenbank mit htmlespecialchars() behandeln.

      $abfrage="SELECT * FROM test WHERE Id='".$_GET['id']."'";

      s.o.

      echo "<input type="hidden" name="Name" value="".$row['Name']."">";

      s.o.

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|