mein erstes php script was ist falsch ?

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

  • mein erstes php script was ist falsch ?

    Es sind 3 files edit1.php edit2.php und edit3.php

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

       
    // Tabellenbeginn
       
    echo "<table border>";

       
    // Überschrift
       
    echo "<tr> <td>&nbsp;</td><td>nick</td> <td>function</td>";
       echo 
    "<td>status</td> <td>email</td>";
       echo 
    "<td>info</td></tr>";

       for (
    $i=0$i<$num$i++)
       {
          
    $ni mysql_result($res$i"nick");
          
    $fu mysql_result($res$i"function");
          
    $st mysql_result($res$i"status");
          
    $em mysql_result($res$i"email");
          
    $in mysql_result($res$i"info");

          
    // Tabellenzeile mit -zellen
          
    echo "<tr> <td><input type='radio' name='auswahl'";
          echo 
    " value='$pn'></td> <td>$ni</td> <td>$fu</td>";
          echo 
    "<td>$st</td> <td>$em</td> <td>$in</td> </tr>";
       }

       
    // Tabellenende
       
    echo "</table>";

       
    mysql_close($db);
    ?>
       <p>
       <input type="submit" value="Datensatz anzeigen">
    </form>
    </body>
    </html>
    PHP-Code:
    <html>
    <body>
    <?php
    if ($auswahl)
    {
       
    $db mysql_connect();

       
    $sqlab "select * from members where";
       
    $sqlab .= " nick = $auswahl";

       
    $res mysql_db_query("blynde"$sqlab);

       
    $altfu mysql_result($res0"function");
       
    $altst mysql_result($res0"status");
       
    $altem mysql_result($res0"email");
       
    $altin mysql_result($res0"info");

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

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

       echo 
    "<input name='neuni' value='$auswahl'>";
       echo 
    " nick<p>";
       echo 
    "<input name='neufu' value='$altfu'> ";
       echo 
    " function<p>";
       echo 
    "<input name='neust' value='$altst'>";
       echo 
    " status<p>";
       echo 
    "<input name='neuem' value='$altem'>";
       echo 
    " email<p>";
       echo 
    "<input name='neuin' value='$altin'>";
       echo 
    " info<p>";
       echo 
    "<input type='hidden' name='orini' ";
       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>
    PHP-Code:
    <html>
    <body>
    <?php
       $db 
    mysql_connect();

       
    $sqlab "update personen set name = '$neunn',";
       
    $sqlab .= "vorname = '$neuvn',";
       
    $sqlab .= "personalnummer = '$neupn',";
       
    $sqlab .= "gehalt = '$neuge',";
       
    $sqlab .= "geburtstag = '$neugt'";
       
    $sqlab .= "where personalnummer = $orini";

       
    mysql_db_query("blynde"$sqlab);

       
    $num mysql_affected_rows();
       if (
    $num>0)
          echo 
    "Der Datensatz wurde geändert<p>";
       else
          echo 
    "Der Datensatz wurde nicht geändert<p>";

       
    mysql_close($db);
    ?>
    Zurück zur <a href="main.html">Auswahl</a>

    </body>
    </html>
    Also die erste Seite wo man die Zeile auswaehlt geht aber wenn ich dann auf datensatz anzeigen klickt kommt die meldung "Es wurde kein Datensatz ausgewählt" aber warum die daten sind ja vorhanedn irgend wo muss da ein fehler im code sein nur wo ???


    bitte helft mir

    danke !!!

  • #2
    such mal nach Globals = OFF
    Für Rechtschreibfehler übernehme ich keine Haftung!

    Kommentar


    • #3
      Benutze bitte $_POST

      Beispiel:
      Statt
      PHP-Code:
      // Statt folgende Zeile
      echo $ni;
      // lieber folgende Zeile
      echo $_POST['ni']; 
      Was $_POST bewirkt, möchtest Du gerne im Handbuch unter http://www.php.net/manual/de/reserve...variables.post lesen.

      Kommentar


      • #4
        also kannst du mir bitte mal genauer erklaeren wie? wo? und fuer was? ich diesen $_POST einsetzen soll????

        ich hab mal versucht diesen Befehl einzubauen aber seid dem geht nichts mehr das script liefert nur noch fehler .... (muss ich alle $xxx mit $_POST vershen oder nur manche oder was ?????)


        danke !

        Kommentar


        • #5
          Am besten, Du lernst erst einmal PHP-Grundlagen, bevor Du Dich an etwas heranwagst, was Du nicht verstehst.

          Um Deine Frage dennoch zu beantworten: Alle Eingaben, die von einem Formular kommen, sollten mit $_POST['deinformularfeldname'] weiter verarbeitet werden. In Deinem Fall trifft dies beispielsweise auf SQL-Anweisungen zu, die Formulareingaben verwerten, also beispielsweise

          Code:
          UPDATE personen SET name = '".$_POST['name']."'
          Du solltest allerdings beim Formular selbst kein $_POST verwenden.

          Kommentar


          • #6
            Hi,

            dein fehler liegt bei dir im Script.. und zwar sind es zwei Sachen, die mir aufgefallen sind

            edit1.php
            PHP-Code:
                  // Tabellenzeile mit -zellen
                  
            echo "<tr> <td><input type='radio' name='auswahl'";
                  echo 
            " value='$pn'></td> <td>$ni</td> <td>$fu</td>";
                  echo 
            "<td>$st</td> <td>$em</td> <td>$in</td> </tr>"
            Ändere das doch mal in folgendes um:

            PHP-Code:
                  // Tabellenzeile mit -zellen
                  
            echo "<tr> <td><input type='radio' name='auswahl'";
                  echo 
            " value='$ni'></td> <td>$ni</td> <td>$fu</td>";
                  echo 
            "<td>$st</td> <td>$em</td> <td>$in</td> </tr>"
            Desweiteren ergänze die folgende Zeile aus edit2.php

            PHP-Code:
               $sqlab "select * from members where";
               
            $sqlab .= " nick = $auswahl"
            durch

            PHP-Code:
               $sqlab "select * from members where";
               
            $sqlab .= " nick = '$auswahl'"
            Das sollte dir direkt weiterhelfen und es wird funktionieren

            Kommentar

            Lädt...
            X