formular automatisch erstellen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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

      Comment


      • #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

        Comment


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

          danke erstmal
          olli

          Comment


          • #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

            Comment


            • #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!

              Comment


              • #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

                Comment


                • #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

                  Comment


                  • #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

                    Comment


                    • #11
                      schattenbaum.net

                      Das sind Grundlagen!

                      Comment


                      • #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

                        Comment


                        • #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.

                          Comment


                          • #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

                            Comment


                            • #15
                              was ist denn das?

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

                              Comment

                              Working...
                              X