[Funktion] Aus DB in Formular eintragen

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

  • [Funktion] Aus DB in Formular eintragen

    Hallo, ich bin gerade dabei für meine HP einen Adminbereich zu basteln. Nun habe ich folgendes Problem.

    Wenn ich nun z.B. einen Admin-Account ändern möchte hab ich mir eine Funktion dazu gebastelt die die daten des admins aus der DB lesen soll und in das Formular eintragen soll.

    So nun hab ich zwei Probleme.
    1. Wie bekomme ich die Funktion dazu mir die daten auch zu aktualisieren und
    2. wie kann ich mir die Daten vorweg in das Formular eintragen lassen?
    In meinem Formular werden Daten nämlich nicht angezeigt.

    Hier der anfang.
    PHP-Code:
    function editadmin($aid) {
            
        
    $edit_id $aid;
        
        
    $query = ("SELECT id, user, email, url, adminlevel FROM users WHERE id = '$edit_id'");
        
    $result mysql_query($query) OR DIE (mysql_error());
        
    $row mysql_num_rows($result); 
    wenn ich aber so Anfange "function editadmin($aid)" bekomme ich den Fehler:

    Warning: Missing argument 1 for editadmin() in ......\funktion.inc.php on line 3

    Obwohl ich über ?action=editadmin&aid=#WERT die Funktion aufrufe.
    Ohne $aid passiert nix.

    Hier nun noch der rest. Ich poste nur das wichtigste. Und ja, in der DB steht schon was drin

    PHP-Code:
    .....
    if(!isset(
    $_POST['submit'])) {
        echo 
    "<form action='$PHP_SELF' method='post'>";
        echo 
    "<table width='98%' border='0' align='center' cellpadding='5' cellspacing='0'>";
      echo 
    "<tr><td colspan='2' align='center'><b>Admin Account von ".$row['user']." editieren</b></td></tr>";
      echo 
    "<tr><td width='100'>Benutzername</td><td width='230'>";
      
      echo 
    "<input type='text' name='edituser_name' value='".$row['user']."' class='input' ";
      if(
    $_POST['edituser_name'] != "") { echo ' value="'.$_POST['edituser_name'].'"'; }
     
      echo 
    "size='20'></td></tr><tr><td width='100'>E-Mail Adresse</td><td width='230'>";

    .........

    else{
       
         
    $username $_POST['edituser_name'];
         
    $pass md5($_POST['password']);
         
    $email $_POST['edituser_email'];
         
    $url $_POST['edituser_url'];
           
    $adminlevel $_POST['edituser_adminlevel'];
           
    $id $edit_id;
           
           if(
    $update= @mysql_query("UPDATE USERS SET user = '$username', pass = '$pass' , email = '$email' , url = '$url' , 
    adminlevel = '
    $adminlevel' WHERE id = '$id' ")) {
           echo 
    "<br><p align='center'>
    Der Admin Account wurde erfolgreich geändert<br><a href='admin.php'>Zur Admin-Seite</a></p>"

    Ich denke der Fehler liegt beim Funktions aufruf und bei der syntax
    value='".$row['user']."' Aber irgendwie weiss ich nicht so recht weiter. Hab noch nicht sehr viel mit funktionen gearbeitet. Ich hoffe ihr könnt mir helfen.

    viele grüße Lord-Helmchen
    Zuletzt geändert von Lord-Helmchen; 05.11.2004, 16:43.

  • #2
    Re: [Funktion] Aus DB in Formular eintragen

    hmm,
    Obwohl ich über ?action=editadmin&aid=#WERT die Funktion aufrufe.
    so rufst du keinesfalls die funktion auf, du übergibst lediglich die parameter an die seite ...

    ich konnte in deinem code auch nirgends den funktionsaufruf entdecken!?
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      OK hier noch der Code der ADMIN.PHP die Funktion steht in einer datei Funktion.inc.php die ich vorher include.

      PHP-Code:
      switch ($_GET['action']) { 
         case 
      "createadmin"
         
      createadmin(); 
         break; 

         case 
      "editadmin"
         
      editadmin(); 
         break;

      OK...merke gerade das ich $aid nicht im aufruf angegeben habe.
      Jetzt bekomm ich zwar keine Fehler mehr angezeigt
      aber es steht immer noch nix im formular.
      Warum steht da nix in meinem textfeld wenn ich value='".$row['user']."' benutze?

      So siehts dann im code aus

      PHP-Code:
      echo "<input type='text' name='edituser_name' value='".$row['user']."' class='input' ";
        if(
      $_POST['edituser_name'] != "") { echo ' value="'.$_POST['edituser_name'].'"'; } 
      was mache ich falsch?


      EDIT: So jetzt bin soweit das er mir die daten korrekt übergibt und auch aktualisiert.
      Das realisiere ich über eine weitere funktion listadmins() wobei ich da nur
      die derzeitigen admins aufliste und dann über den link die daten an die zweite funktion übergebe.
      jetzt hab ich die korrekte Id und kann die daten aktualisieren.

      PHP-Code:
      function listadmin(){

      echo 
      "<table align='center' border='1' bordercolor='#000000' width='550' align='center' cellpadding='1' 
      cellspacing='0'>"
      ;
          
      $query = ("SELECT id, user, email, url, icq, adminlevel FROM users");
          
      $result mysql_query($query);
          
      $row mysql_num_rows($result);
          if(
      $result) {
          while (
      $row mysql_fetch_array($result)) {
          
      $aid $row[id];
          echo 
      "<tr><td>$row[user]</td><td>$row[email]</td>
      <td>
      $row[url]</td><td>$row[icq]</td><td>$row[adminlevel]</td>
      <td><a href='?action=editadmin&amp;aid=
      $aid'>Edit</a></td></tr>";
          }
          }
          echo 
      "</table>";

      übrigens kann ich hier die Daten sehen. Nur der blöde value wert im Formular zeigt nix an.
      Zuletzt geändert von Lord-Helmchen; 05.11.2004, 16:43.

      Kommentar


      • #4
        Original geschrieben von Lord-Helmchen
        übrigens kann ich hier die Daten sehen.
        ja, weil du hier die werte innerhalb der funktion ausgibst, in der du sie auch ausliest.

        Nur der blöde value wert im Formular zeigt nix an.
        diese ausgabe machst du außerhalb deiner funktion, also sind dort die ausgelesenen werte auch nicht bekannt.

        ein ordentlich eingestelltes error_reporting hätte dich übrigens auch darauf hingewiesen, dass es die variablen an der stelle nicht gibt. also stellst du das jetzt bitte erst mal ordentlich ein, damit du in zukunft vernünftig arbeiten kannst: http://www.php.net/manual/de/ref.errorfunc.php


        und anschließend informierst du dich bitte über den scope (gültigkeitsbereich) von variablen, http://www.php.net/manual/de/languag...bles.scope.php


        und vorher brichst du bitte noch deinen letzten beiträge um, damit man hier nicht meterweise querscrollen muss.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ICH habs!!!

          Hab die While Schleife vergessen.

          sowas dämliches......

          Wen die kompletten Funktionen interessieren schreibe mich per PM an.

          @wahsaga: Is ja schon gut...hab ne 1600er auflösung, da brauche ich nicht seitlich scrollen.
          und Danke für die Tips zwecks Error Reporting etc.
          Zuletzt geändert von Lord-Helmchen; 05.11.2004, 16:47.

          Kommentar

          Lädt...
          X