Ändern eines Datensatzes

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

  • Ändern eines Datensatzes

    He Hallo, ich habe folgendes Problem.

    Habe ein Formular, welches mir alle Datensätze einer Datenbank anzeigt, möchte dann einen auswählen und diesen bearbeiten. Der Quelltext sieht folgendermassen aus:

    <html>
    <body>
    Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
    <form action = "uf16b.php" method = "post">
    <?php
    $db = mysql_connect();
    $res = mysql_db_query("firma",
    "select * from personen");
    $num = mysql_num_rows($res);

    // Tabellenbeginn
    echo "<table border>";

    // Überschrift
    echo "<tr> <td>Auswahl</td> <td>Name</td>";
    echo "<td>Vorname</td> <td>Personalnummer</td>";
    echo "<td>Gehalt</td> <td>Geburtstag</td> </tr>";

    for ($i=0; $i<$num; $i++)
    {
    $nn = mysql_result($res, $i, "name");
    $vn = mysql_result($res, $i, "vorname");
    $pn = mysql_result($res, $i, "personalnummer");
    $ge = mysql_result($res, $i, "gehalt");
    $gt = mysql_result($res, $i, "geburtstag");

    // Tabellenzeile mit -zellen
    echo "<tr> <td><input type='radio' name='auswahl'";
    echo " value='$pn'></td> <td>$nn</td> <td>$vn</td>";
    echo "<td>$pn</td> <td>$ge</td> <td>$gt</td> </tr>";
    }

    // Tabellenende
    echo "</table>";

    mysql_close($db);
    ?>
    <p>
    <input type="submit" value="Datensatz anzeigen">
    </form>
    </body>
    </html>

    Wenn ich aber eine Auswahl treffe, und mit Datensatz anzeigen das Formular uf16b.php aufrufe erscheint folgende Meldung

    Es wurde kein Datensatz ausgewählt

    Obwohl ich einen ausgewählt habe.

    Formular uf16.php sieht folgendermaßen aus:

    <html>
    <body>
    <?php
    if ($auswahl)
    {
    $db = mysql_connect();

    $sqlab = "select * from personen where";
    $sqlab .= " personalnummer = $auswahl";

    $res = mysql_db_query("firma", $sqlab);

    $altnn = mysql_result($res, 0, "name");
    $altvn = mysql_result($res, 0, "vorname");
    $altge = mysql_result($res, 0, "gehalt");
    $altgt = mysql_result($res, 0, "geburtstag");

    echo "Führen Sie die Änderungen durch,<p>";
    echo "betätigen Sie anschließend den Button<p>";

    echo "<form action = 'uf16c.php' ";
    echo " method = 'post'>";

    echo "<input name='neunn' value='$altnn'>";
    echo " Nachname<p>";
    echo "<input name='neuvn' value='$altvn'> ";
    echo " Vorname<p>";
    echo "<input name='neupn' value='$auswahl'>";
    echo " Personalnummer<p>";
    echo "<input name='neuge' value='$altge'>";
    echo " Gehalt<p>";
    echo "<input name='neugt' value='$altgt'>";
    echo " Geburtstag<p>";
    echo "<input type='hidden' name='oripn' ";
    echo " value='$auswahl'>";

    echo "<input type='submit' ";
    echo " value='Änderungen in DB speichern'><p>";
    echo "<input type='reset'>";
    echo "</form>";

    mysql_close($db);
    }

    else
    echo "Es wurde kein Datensatz ausgewählt<p>";
    ?>
    </body>
    </html>

    Hat jemand eine Idee warum????????????????

  • #2
    Re: Ändern eines Datensatzes

    Original geschrieben von sunburner
    Hat jemand eine Idee warum????????????????
    [deine ?-taste klemmt wohl.]


    evtl. register_globals auf offf?

    dann musst du in uf16b.php mit $_POST['auswahl'] auf die übergebene variable zugreifen (anstatt mit $auswahl).
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hab jetzt folgendes

      <?php
      if ($_POST['auswahl'])
      {

      dann kommt folgendes:

      Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\veranstaltung\uf16b.php on line 13

      Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\veranstaltung\uf16b.php on line 14

      Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\veranstaltung\uf16b.php on line 15

      Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\veranstaltung\uf16b.php on line 16
      Führen Sie die Änderungen durch,
      betätigen Sie anschließend den Button

      Nachname

      Vorname

      Personalnummer

      Gehalt

      Geburtstag

      vor nachname, vorname etc. sind noch die Textfelder.

      Kommentar


      • #4
        $sqlab = "select * from personen where";
        $sqlab .= " personalnummer = '$auswahl'";
        mfg
        Günni


        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
        City-Tiger - Online durch die Straßen tigern...

        Kommentar


        • #5
          PHP-Code:
          echo $sqlab//neu
          $res mysql_db_query("firma"$sqlab); 
          ausgabe?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Jetzt so

            Jetzt so, änderung von günni mit eingebaut

            <html>
            <body>
            <?php
            if ($_POST['auswahl'])
            {
            $db = mysql_connect("Grafik","root","");

            $sqlab = "select * from personen where";
            $sqlab .= " personalnummer = '$auswahl'";

            echo $sqlab; //neu
            $res = mysql_db_query("firma", $sqlab);

            $altnn = mysql_result($res, 0, "name");
            $altvn = mysql_result($res, 0, "vorname");
            $altge = mysql_result($res, 0, "gehalt");
            $altgt = mysql_result($res, 0, "geburtstag");

            dabei folgender fehler

            select * from personen where personalnummer = ''
            Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 14

            Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 15

            Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 16

            Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 17
            Führen Sie die Änderungen durch,
            betätigen Sie anschließend den Button

            Kommentar


            • #7
              $sqlab = "select * from personen where";
              $sqlab .= " personalnummer = '".$_POST['$auswahl']."'";
              mfg
              Günni


              Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
              Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
              Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
              City-Tiger - Online durch die Straßen tigern...

              Kommentar


              • #8
                Re: Re: Ändern eines Datensatzes

                Original geschrieben von wahsaga
                dann musst du in uf16b.php mit $_POST['auswahl'] auf die übergebene variable zugreifen (anstatt mit $auswahl).
                das bezieht sich auf jedes vorkommen von $auswahl!
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Hab jetzt dieses

                  <html>
                  <body>
                  <?php
                  if ($_POST['auswahl'])
                  {
                  $db = mysql_connect("Grafik","root","");

                  $sqlab = "select * from personen where";
                  $sqlab .= " personalnummer = '".$_POST['$auswahl']."'";

                  echo $sqlab; //neu
                  $res = mysql_db_query("firma", $sqlab);

                  $altnn = mysql_result($res, 0, "name");
                  $altvn = mysql_result($res, 0, "vorname");
                  $altge = mysql_result($res, 0, "gehalt");
                  $altgt = mysql_result($res, 0, "geburtstag");

                  echo "Führen Sie die Änderungen durch,<p>";
                  echo "betätigen Sie anschließend den Button<p>";

                  echo "<form action = 'uf16c.php' ";
                  echo " method = 'post'>";

                  echo "<input name='neunn' value='$altnn'>";
                  echo " Nachname<p>";
                  echo "<input name='neuvn' value='$altvn'> ";
                  echo " Vorname<p>";
                  echo "<input name='neupn' value='$auswahl'>";
                  echo " Personalnummer<p>";
                  echo "<input name='neuge' value='$altge'>";
                  echo " Gehalt<p>";
                  echo "<input name='neugt' value='$altgt'>";
                  echo " Geburtstag<p>";
                  echo "<input type='hidden' name='oripn' ";
                  echo " value='$auswahl'>";

                  echo "<input type='submit' ";
                  echo " value='Änderungen in DB speichern'><p>";
                  echo "<input type='reset'>";
                  echo "</form>";

                  mysql_close($db);
                  }

                  else
                  echo "Es wurde kein Datensatz ausgewählt<p>";
                  ?>
                  </body>
                  </html>

                  mit diesem fehler

                  select * from personen where personalnummer = ''
                  Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 14

                  Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 15

                  Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 16

                  Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 17
                  Führen Sie die Änderungen durch,
                  betätigen Sie anschließend den Button

                  Kommentar


                  • #10
                    Du übergibst anscheinend keinen Wert in der Variable auswahl. Sie dir mal bei dem Formular bevor du es absendest den valuewert des inputfeldes auswahl an.
                    mfg
                    Günni


                    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                    City-Tiger - Online durch die Straßen tigern...

                    Kommentar


                    • #11
                      Original geschrieben von wahsaga
                      dann musst du in uf16b.php mit $_POST['auswahl'] auf die übergebene variable zugreifen (anstatt mit $auswahl).
                      das bezieht sich auf jedes vorkommen von $auswahl!

                      wenn du beim if $auswahl durch $_POST['auswahl'] ersetzt, dann musst du bei $sqlab ebenfalls $auswahl durch $_POST['auswahl'] ersetzen und nicht durch $_POST['$auswahl']
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Stimmt, hab ich glatt übersehen.
                        mfg
                        Günni


                        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                        City-Tiger - Online durch die Straßen tigern...

                        Kommentar


                        • #13
                          War mein Fehler, aber bleibt sich

                          Meine beiden Quelltexte zum abgleich

                          uf16a.php:

                          <html>
                          <body>
                          Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
                          <form action = "uf16b.php" method = "post">
                          <?php

                          $db = mysql_connect("Grafik","root","");
                          $res = mysql_db_query("firma",
                          "select * from personen");
                          $num = mysql_num_rows($res);

                          // Tabellenbeginn
                          echo "<table border>";

                          // Überschrift
                          echo "<tr> <td>Auswahl</td> <td>Name</td>";
                          echo "<td>Vorname</td> <td>Personalnummer</td>";
                          echo "<td>Gehalt</td> <td>Geburtstag</td> </tr>";

                          for ($i=0; $i<$num; $i++)
                          {
                          $nn = mysql_result($res, $i, "name");
                          $vn = mysql_result($res, $i, "vorname");
                          $pn = mysql_result($res, $i, "personalnummer");
                          $ge = mysql_result($res, $i, "gehalt");
                          $gt = mysql_result($res, $i, "geburtstag");

                          // Tabellenzeile mit -zellen
                          echo "<tr> <td><input type='radio' name='auswahl'";
                          echo " value='$pn'></td> <td>$nn</td> <td>$vn</td>";
                          echo "<td>$pn</td> <td>$ge</td> <td>$gt</td> </tr>";
                          }

                          // Tabellenende
                          echo "</table>";

                          mysql_close($db);
                          ?>
                          <p>
                          <input type="submit" value="Datensatz anzeigen">
                          </form>
                          </body>
                          </html>


                          und uf16b.php:

                          <html>
                          <body>
                          <?php
                          if ($_POST['auswahl'])
                          {
                          $db = mysql_connect("Grafik","root","");

                          $sqlab = "select * from personen where";
                          $sqlab .= " personalnummer = '".$POST['auswahl']."'";

                          echo $sqlab; //neu
                          $res = mysql_db_query("firma", $sqlab);

                          $altnn = mysql_result($res, 0, "name");
                          $altvn = mysql_result($res, 0, "vorname");
                          $altge = mysql_result($res, 0, "gehalt");
                          $altgt = mysql_result($res, 0, "geburtstag");

                          echo "Führen Sie die Änderungen durch,<p>";
                          echo "betätigen Sie anschließend den Button<p>";

                          echo "<form action = 'uf16c.php' ";
                          echo " method = 'post'>";

                          echo "<input name='neunn' value='$altnn'>";
                          echo " Nachname<p>";
                          echo "<input name='neuvn' value='$altvn'> ";
                          echo " Vorname<p>";
                          echo "<input name='neupn' value='$auswahl'>";
                          echo " Personalnummer<p>";
                          echo "<input name='neuge' value='$altge'>";
                          echo " Gehalt<p>";
                          echo "<input name='neugt' value='$altgt'>";
                          echo " Geburtstag<p>";
                          echo "<input type='hidden' name='oripn' ";
                          echo " value='$auswahl'>";

                          echo "<input type='submit' ";
                          echo " value='Änderungen in DB speichern'><p>";
                          echo "<input type='reset'>";
                          echo "</form>";

                          mysql_close($db);
                          }

                          else
                          echo "Es wurde kein Datensatz ausgewählt<p>";
                          ?>
                          </body>
                          </html>

                          Folgender Fehler

                          select * from personen where personalnummer = ''
                          Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 14

                          Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 15

                          Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 16

                          Warning: Unable to jump to row 0 on MySQL result index 2 in c:\apache\htdocs\veranstaltung\uf16b.php on line 17
                          Führen Sie die Änderungen durch,
                          betätigen Sie anschließend den Button

                          Kommentar


                          • #14
                            Du übergibst anscheinend keinen Wert in der Variable auswahl. Sie dir mal bei dem Formular bevor du es absendest den valuewert des inputfeldes auswahl an.
                            Mach dies mal bitte...
                            mfg
                            Günni


                            Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                            Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                            Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                            City-Tiger - Online durch die Straßen tigern...

                            Kommentar


                            • #15
                              sorry frage, sehe ich das falsch oder wird die variable auswahl jedesmal neu überschrieben !?!?!

                              soltest du evenutell aus dem name="auswahl" ein name="auswahl_$i" machen.

                              sonst hatdie variable auswahl immer den wert des letzten datensatzes.

                              kannst sie ja dann mit ${'auswahl_'.$i} auslesen und vergleichen ob sie gesetzt ist.
                              bei fragen immer
                              windows - pc: Start -> Ausführen -> cmd (command) - format c:
                              linux : lass es , es hat sicher einen sinn so
                              --
                              php-forum.at


                              >>>>dont ask me why<<<<

                              Kommentar

                              Lädt...
                              X