Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Formular direkt in Datenbank speichern

Das ist eine Diskussion über Formular direkt in Datenbank speichern im Fertige Programme/Scripts Forum; So da ich gerade an so nem Formular drannsitz hier ein kleiner Codeschnipsel dacht ich mir. Vielleicht kann Ihn ja ...

  1. #1
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.908

    Beitrag Formular direkt in Datenbank speichern

    So da ich gerade an so nem Formular drannsitz hier ein kleiner Codeschnipsel dacht ich mir. Vielleicht kann Ihn ja wer gebrauchen.

    Was macht das Teil:
    Es speichert die Daten eines Formulares direkt in die Datenbank. Auf den 1. Blick nichts besonderes aber wir generieren den ganzen Insert string schon im Vorfeld.

    Bedingungen:
    der Name der Formularfelder muss gleich sein wie die Spaltennamen der Tabelle.

    Vorteil:
    Wenn man im Templates oder sauber getrennten PHP & HTML Code arbeitet muss man bei seinem Formular eine neues Inputfeld hinzufügen, sowie eben die Spalte in der Tabelle. Am INSERT- String muss nichts mehr geändert werden. Da man vorher ja auch immer alle Eingaben des Formulars auf Eingaben die man nicht will (zB HTML Code, Leerzeichen usw) kontrollieren sollte, muss man hier nicht immer jedes mitübergebene Feld einzeln kontrollieren.

    PHP-Code:
    $spaltenwert '';
    $spaltenname '';
    $i '0';
    $sum_array '';
            
       
    $sum_array count($_POST);
            
         foreach(
    $_POST as $k => $v) {
             
    $i++;
                    
             
    $v clear_string($v); 
             
    //Funktion welche die Eingaben "säubert", diese Zeile mit eigener Funktion oder direkt hier ersetzen
                    
              //Falles Form leer war, Ersatzwert einfügen (wenn benötigt)
              
    if(empty($v)){$v '0';}
                    
               
    //Beim letzten Wert keinen "," mehr
               
    if($i == $sum_array){
                   
    $spaltenwert .= "'$v'";
                    
    $spaltenname .= $k;
                }
                else{
                    
    $spaltenwert .= "'$v'".',';
                    
    $spaltenname .= $k.',';
                    }
                }
            
            
    //echo"$spaltenwert<br /> $spaltenname <br />"; //Kontrolle, wie die Werte aussehen
            
            //Daten in der DB speichern
            //--------------------------------------------------------------
            
    $sql="INSERT INTO geraet ($spaltenname) VALUES($spaltenwert)";    
            
    mysql_query($sql) or die("Das Speichern war nicht erfolgreich"); 
    ist wie gesagt nur ein Codeschnipsel, vielleicht weiß ja jemand was damit anzufangen.

    Ideen, Vorschläge, Meinungen sind gern willkommen :-)

  2. #2
    fox
    fox ist offline
    Administrator Avatar von fox
    Registriert seit
    12.08.2008
    Ort
    In einer Wohnung
    Beiträge
    3.599

    Standard

    Ehrlich?: Das ist mir zu hoch!

    Ich bin froh, dass ich in Sachen Datenbank nur die Daten in einer Datei eingeben muss und dafür sorgen, dass tägliche Updates gemacht und entspr. gespeichert werden!

    Und mit PHP kann ich auch nicht wirklich viel anfangen. HTML ist mir in den Grundzügen bekannt, aber mit PHP werd ich nicht so wirklich warm...

    Was muss man denn so machen, damit man es mit so einem "Schnipsel" zu tun bekommt?
    Du bist zufrieden mit unserer Hilfe? --> Dann setz einen Link zu uns auf deine Seite: Link uns!

  3. #3
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.908
    Themenstarter

    Standard

    man macht von der Firma aus nen kompletten Relaunch der Geolauf-Seite. Aber ich hab gemerkt ich muss wieder mehr Programmieren musste echt einiges Nachschaun.

    Zu dem Codeschnipsel:
    im Endeffekt könntest du es fast wie oben übernehmen, es fehlt nur mehr die Verbindung zur Datenbank. Wenn du dann sagst du kannst mit HTML ein Formular erstellen, und über phpMyAdmin zB in der Datenbank eine Tabelle anlegen in der die Spaltenbezeichnung gleich ist wie die Input-Bezeichnungen dann wars das und die werden dort rein gespeichert.

    Du musst nicht mehr jeden einzelnen Wert aus dem Formular mittels $_POST['name'] abfragen sondern der Codeschnipsel liest sich über die foreach-Schleife alles aus dem Array raus was er braucht.

  4. #4
    fox
    fox ist offline
    Administrator Avatar von fox
    Registriert seit
    12.08.2008
    Ort
    In einer Wohnung
    Beiträge
    3.599

    Standard

    D.h. ich erstelle mir ein Formular (mit auch mehreren Eingabemöglichkeiten?), gebe den Zeilen Namen, erstelle enspr. Tabellen in der Datenbank, und die werden dann in der jeweiligen Tabelle abgelegt, und lassen sich dann (Abfrage der Tabelle/n) wieder auslesen und woanders darstellen.

    Richtig so?
    Du bist zufrieden mit unserer Hilfe? --> Dann setz einen Link zu uns auf deine Seite: Link uns!

  5. #5
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.908
    Themenstarter

    Standard

    so ungefähr, nur werden sie hier NUR in die DB gespeichert, auslesen kommt noch

    versuchen wir das ganze bissl mit Beispielen erklären.

    Ein typisches Input-Feld sieht wie folgt aus
    HTML-Code:
    <input type="text" name="test_feld" value="" />
    Wichtig ist hier das name="test_feld"

    Nun erstellst man eine neue mySQL Datenbank.
    Dort legen wir eine Tabelle an die zB "testDB" heißt und als Spalte in dieser testDB legen wir zB ein Feld vom typ Text mit dem Namen "test_feld"

    Das ist eben die einzige Bedingung bei dem Codeschnipsel.
    Wenn jetzt jemand was in das Input-Feld eintragen würd und auf den Speichern/Senden wie man ihn nennen will -Button drücken würd startet man das Codeschnipsel oben.

    das feine dabei ist das alles in dem Array $_POST gespeichert ist. Sowohl der Wert des Inputfeldes, als auch der Name des Feldest.

    Normal greift man über den Namen als Index auf den jeweiligen Wert zu
    PHP-Code:
    $_POST['test_feld] 
    hierbei les ich aber immer nur den EINEN Wert aus.

    in dem Codeschnipsel umgeh ich das mit einer Schleife wo ich sowohl Name als auch Wert auslese. Stückel das ganze dann zusammen und speicher es wieder in zwei Variablen ab die dann einen String beinhalten mit dem ich den Insertbefehl füttere.

    Ich sag mal, klar ist vielleicht nicht die feine englische Art, aber PHP lässt sowas halt zu

    Kannst es ja gern mal selbst probieren, falls Fehlermeldung vorhanden, hier posten, wir finden dann bestimmt die Lösung *g*

  6. #6
    fox
    fox ist offline
    Administrator Avatar von fox
    Registriert seit
    12.08.2008
    Ort
    In einer Wohnung
    Beiträge
    3.599

    Standard

    O.k., das ist vielleicht was für einen Samstag-/Sonntag-Nachmittag mit schlechtem Wetter

    Die ersten Fehlermeldungen kommen dann bestimmt schon, bevor ich das Script überhaupt starte
    Du bist zufrieden mit unserer Hilfe? --> Dann setz einen Link zu uns auf deine Seite: Link uns!

  7. #7
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.908
    Themenstarter

    Standard

    aber 1. extra DB anlegen, nciht mit der des Forums arbeiten *g*
    Bzw am besten so oder so offline

    und ganz wichtig, wie oben geschrieben auch
    PHP-Code:
    $v clear_string($v); 
    löschen. da clear_string() eine Funktion von mir ist und keine eigene von PHP :-)

  8. #8
    fox
    fox ist offline
    Administrator Avatar von fox
    Registriert seit
    12.08.2008
    Ort
    In einer Wohnung
    Beiträge
    3.599

    Standard

    Zitat Zitat von Chronos Beitrag anzeigen
    aber 1. extra DB anlegen, nciht mit der des Forums arbeiten *g*
    Neenee, die wird geschützt und immer mal wieder optimiert/repariert. Die werd ich mir mit einem Experiment nicht zerschießen!

    Ich kann aber mit meinem Paket noch zwei Datenbanken anlegen (und hinterher zur Not dann einfach wieder löschen )
    Du bist zufrieden mit unserer Hilfe? --> Dann setz einen Link zu uns auf deine Seite: Link uns!

  9. #9
    Super-Moderator
    Registriert seit
    14.10.2008
    Ort
    Bei Mainz
    Beiträge
    408

    Standard

    Hab mir mal erlaubt das Thema hier her zu verschieben - Schnippsel oder nicht, ich finde es gehört hier her.

    Zum Thema: Coole Sache, Chronos!
    Ich hoffe mein Schaden hat kein Gehirn genommen!

    „Sei ernsthaft, bescheiden, höflich, ruhig, wahrhaftig. Rede nicht zuviel. Und nie von Dingen, wovon Du nichts weißt”
    -Adolph von Knigge-

  10. #10
    fox
    fox ist offline
    Administrator Avatar von fox
    Registriert seit
    12.08.2008
    Ort
    In einer Wohnung
    Beiträge
    3.599

    Standard

    Zitat Zitat von Vocast Beitrag anzeigen
    Hab mir mal erlaubt das Thema hier her zu verschieben
    Und ich dachte gerade:

    Aber Recht hast du ja!
    Du bist zufrieden mit unserer Hilfe? --> Dann setz einen Link zu uns auf deine Seite: Link uns!

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. FTPServer und MySQL Datenbank
    Von 1.eSahne im Forum Hilfe gesucht!
    Antworten: 19
    Letzter Beitrag: 13.03.2012, 20:08
  2. Twitter posts automatisch in die Datenbank speichern
    Von chrisiauer im Forum Grundlagen / Tipps
    Antworten: 6
    Letzter Beitrag: 19.02.2012, 11:15
  3. Wie Facebook UID in Datei speichern?
    Von Jutta im Forum Hilfe gesucht!
    Antworten: 5
    Letzter Beitrag: 03.02.2012, 20:24
  4. Datenbank Backup
    Von D3nN!sD3luXe im Forum Hilfe gesucht!
    Antworten: 33
    Letzter Beitrag: 19.01.2011, 07:12
  5. Googles Linkverkürzer direkt verwendbar
    Von fox im Forum Aktuelles
    Antworten: 0
    Letzter Beitrag: 01.10.2010, 16:29

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •