formular automatisch erstellen

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

  • formular automatisch erstellen

    hallo,

    ich suche schon eine ganze zeit hier im forum aber leider kann ich nicht das finden was ich suche.

    ich versuche ein formular zu erstellen das sich die passend zu einer datenbank-tabelle verhält, ähnlich wie bei phpmyadmin, sozusagen ein universalformular.
    ich hab nur leider keine ahnung wie ich das anstellen soll???

    also was ich schon hab ist wie ich die felder auslese, aber wie bekomme ich das dann zusammen in ein formular, vorallem wenn mal 3 eingabefelder drin sind und manchmal 4 oder mehr?

    vielleicht kann mir ja jemand hier einen denkanstoß geben???

    danke und gruß

    olli

  • #2
    schleifen kennst du? while() wird dir sicher helfen.

    Außerdem erkenne ich in deinem Posting keinen Ansatz. Poste den mal.

    Kommentar


    • #3
      danke für den tip schon mal, also ich bin jetzt soweit:

      PHP-Code:
      $query 'select * from tabelle where id=".$id."';
      $query stripslashes($query);
      $ergebnis mysql_query($query) or die (mysql_error());
      $felder mysql_num_fields($ergebnis);
      $reihen mysql_num_rows($ergebnis);
      $tabelle mysql_field_table($ergebnis0);
      $head mysql_fetch_array($ergebnis);
      echo 
      "<form name'form' method'post' action=''>\n";
      echo 
      "<table width='580' border='0' cellspacing='0' cellpadding='5' class='border'>\n";
      echo 
      "<tr><td>\n";
      echo 
      "Bearbeiten";
      echo 
      "</td></tr>";
      $i =0;
      while (
      $i $felder) {
      echo 
      "<tr><td>";
      echo 
      "Titel</td><td>\n";
      echo 
      "<input name='' type='text' id='' value='test' size='50' maxlength='50'>";
      echo 
      "</td></tr>";
      $i++;
      if(
      $i == 20) break;
      }
      echo 
      "</table>";
      echo 
      "</form>"
      ist noch etwas durchenander, bin ja auch noch am versuchen ;-)
      aber wie bekomme ich jetzt die richtigen daten wie "name" usw. an die passenden stellen?

      olli

      Kommentar


      • #4
        PHP-Code:
        print_r ($head); 
        da steht alles drin.

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          hallo,
          wenn ich
          PHP-Code:
          print_r ($head
          eingebe kommt leider nix, aber ich versuch mal weiter

          danke erstmal
          olli

          Kommentar


          • #6
            kommt leider nix
            dann hat deine abfrage auch kein ergebnis gebracht.
            PHP-Code:
            $query 'select * from tabelle where id='."'".$id."'"
            außerdem tippe ich mal auf den typischen register_globals fehler:
            PHP-Code:
            $query 'select * from tabelle where id='."'".$_GET['id']."'"
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Dann hast du ein Problem mit der Datenbankabfrage, da in dem Array, eigentlich alle DB-Werte sein müssten.

              EDIT:


              query = 'select * from tabelle where id='.$id; //<=evtl so?

              Für Rechtschreibfehler übernehme ich keine Haftung!

              Kommentar


              • #8
                hallo und danke für die tips.
                ich hab das ganze jetzt mal als funktion versucht, ich muss noch ein bisschen verschönern aber jetzt läuft es so.

                wenn ich das soweit habe dann poste ich das ganze mal.

                gruß
                olli

                Kommentar


                • #9
                  so ich habe es dann doch zum laufen gebracht

                  aber vielleicht kann man an der einen oder anderen stelle noch etwas verbessern, bin für jeden vorschlag offen.

                  PHP-Code:
                  function auto_form($id$table$action)
                  {
                  include(
                  "../conn.php");
                  $query "select * from $table where id='$id'";
                  $query stripslashes($query);
                  $ergebnis mysql_query($query) or die (mysql_error());
                  $felder mysql_num_fields($ergebnis);
                  $reihen mysql_num_rows($ergebnis);
                  $tabelle mysql_field_table($ergebnis0);
                  $head mysql_fetch_array($ergebnis);
                  echo 
                  "<form name'form' method'post' action='" $action "'>\n";
                  echo 
                  "<table width='580' border='0' cellspacing='0' cellpadding='5' class='border'>\n";
                  echo 
                  "<tr bgcolor='#999999'><td>Bearbeiten</td><td>&nbsp;</td></tr>\n";
                  $i =0;
                  while (
                  $i $felder) {
                  if(
                  $i 2){
                  $tdcolor '#999999'; }
                   else {
                  $tdcolor '#666666'; }
                  $fname mysql_field_name($ergebnis$i);
                  $ftype mysql_field_type($ergebnis$i);
                  $flen  mysql_field_len($ergebnis$i);
                  echo 
                  "<tr bgcolor=$tdcolor><td>"$fname "</td><td>\n";
                  echo 
                  "<td>";
                  if(
                  $ftype == "int" or $ftype == "string"){
                  echo 
                  "<input name='"$fname ."' type='text' id='"$fname ."' value='"$head[$i] ."' size='" $flen "' maxlength='" $flen "'>";
                  echo 
                  $ftype;
                  }
                   else
                  {
                  echo 
                  "<textarea name='" $fname ."' cols='50' rows='5'>" $head[$i] . "</textarea>" $ftype;
                  }
                  echo 
                  "</td></tr>\n";
                  $i++;
                  if(
                  $i == 20) break;
                  }
                  echo 
                  "<tr><td>&nbsp;</td><td><input type='submit' name='Submit' value='Senden'></td><tr>\n";
                  echo 
                  "</table>\n";
                  echo 
                  "</form>\n";

                  bis dahin

                  olli

                  Kommentar


                  • #10
                    hallo,

                    so das script läuft ja jetzt, nur ich habe eins leider nicht bedacht:

                    wie kann ich ein update befehl passend zum formular erzeugen???

                    grüße
                    olli

                    Kommentar


                    • #11
                      schattenbaum.net

                      Das sind Grundlagen!

                      Kommentar


                      • #12
                        danke für den tip.

                        wie ich die update anweisung mache das kann ich schon :-) nur ich muss ja, wenn ich das formular dynamisch erzeuge, die update anweisung auch dynamisch erstellen und da hab ich noch keine ahnugn wie ich die passenden variablen in die anweisung bekomme. ich habe 5 tabellen die ich updaten kann, ich könnte natürlich mit switch/case das lösen aber das muss doch auch dynamisch gehen das ich nur ein update ding schreiben muss ?

                        gruß
                        olli

                        Kommentar


                        • #13
                          kommt drauf an.

                          du übergibst die Werte an die verabeitende Seite und setzt es da zusammen. dabei kann dir if() helfen, aber auch die verschiedenen Schleifen: foreach(), for(), ... $_POST kennst du sicher.

                          Und jetzt überleg dir mal, wie DU die Query anhand der übergebenen Wert aufbauen würdest. das schreibst du in PHP um, und gut ist.

                          Kommentar


                          • #14
                            so ich denke ich habs jetzt, vielleicht kann man das noch schöner machen aber es funktioniert.

                            miene lösung:
                            PHP-Code:
                             if($Submit == "Senden")
                              {    
                                while(list(
                            $key$val) = each($HTTP_POST_VARS)) {
                                    
                            $val stripslashes($val);
                                if(
                            $key != 'tabelle' AND $key != 'Submit'){
                                    
                            $kat .= "$key='$val', ";
                                    }
                                }
                              
                            $kat substr($kat,0,strlen($kat)-2);
                              
                            $query="UPDATE "$tabelle ." SET " $kat " where id='" $id "'";
                                 
                            mysql_query($query) or 
                                      die (
                            mysql_error());
                                echo 
                            "&Auml;nderung durchgef&uuml;hrt!";
                                }
                                else
                                {
                                echo 
                            "mach ich nich!";

                            danke für die hilfe
                            gruß
                            olli

                            Kommentar


                            • #15
                              was ist denn das?

                              PHP-Code:
                              echo "<form name'form' method'post' action='" $action "'>\n"

                              Kommentar

                              Lädt...
                              X