PHP Tutorials, PHP lernen, PHP Forum, PHP Community and more ... MyWebsolution.de!

Sidebar

Home News Tutorials Workshops Tipps Artikel Gästebuch Sitemap Pascal Landau

Suche

Members

Forum Login Registrierung

Statistik

Statistikbereich
Jetzt10
Heute21
Gestern495
Gesamt2387213

Formularprüfung - Formulardaten an MySQL übergeben

Autor Flitze
Klicks 113010
Rating für Formularprüfung
  5.9 von 10
Bewertungen36
Stand 12.06.2013
Keywords:
Formulare auswerten, Formulare benutzen, Formulardaten überprüfen, $_POST, Affenformular, Daten erneut eintragen, Formular, HTML, MYSQL, Übergabe, Daten

Amazon: PHP 5.3 und MySQL 5.1
Breadcrumb:
Tutorials » Formularprüfung » Formularprüfung - Formulardaten an MySQL übergeben
Seite : 1 2 3 4 5 6 Bewerten
Article Wizard - deutscher Article Spinner

5. Formulardaten an MySQL übergeben

[ADSENSE_LINE]
Formulare werden häufig im Zusammenhang mit MySQL-Datenbanken benutzt, wenn Daten vom User eingegeben werden müssen. Das ist z.B. bei MySQL basierten
Gästebüchern und Foren der Fall. In diesem Kapitel stelle ich zwei MySQL-Queries vor und gebe Beispiele zu deren Verarbeitung mit einem Formular. Diese zwei Queries sind SELECT und INSERT. Bei den Beispielen gehe ich von einer bestehenden Datenbankverbindung aus.

Jeder Query ist dabei folgendermaßen strukturiert

PHP:
<?php
    $sql 
"BEFEHL
                        Daten,
                        Daten
            EXPRESSION_1
                        Daten,
                        Daten
            EXPRESSION_2
                        Daten,
                        Daten
            ...
           "
;
    
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
?>


Der Grundbefehl (SELECT, INSERT) und die Expressions (VALUES, WHERE) werden immer an der gleichen Stelle eingerückt und werden groß geschrieben. Die dazu gehörigen Daten, Tabellennamen und Spaltennamen werden noch weiter aber ebenfalls untereinander eingerückt. Der ganze Query wird als String in der Variablen $sql gespeichert. Mit der Funktion mysql_query() führt man einen MySQL Query aus. Liegt ein syntaktischer Fehler vor, bricht das Skript die Abarbeitung durch die Funktion die() ab und gibt den Query zusammen mit einer Fehlermeldung aus. Da erkennt man auch schon, warum ich den Query in einer Variable speichere und nicht direkt mit mysql_query() ausführe. Die Fehlermeldung kann eine Zeilenangabe enthalten, die bei der späteren Fehlersuche behilflich ist und dadurch, dass der Query auch mit ausgegeben wird, sehen wir direkt, mit welchen Daten der Query aufgerufen wurde und finden so ebenfalls schneller einen etwaigen Fehler. Das "Resultat" dieses Querys wird in $result gespeichert, so dass wir falls nötig, später darauf zugreifen können.

SELECT


Nehmen wir an, wir haben ein Formular mit einer Dropdownliste, aus der wir nun einen User auswählen können und das Formular dann die ID dieses Users an ein verarbeitendes Skript übergibt. Mit dieser ID wird dann der Datensatz dieses Users gesucht und dessen Name und Email-Adresse werden ausgewählt.

Das entsprechende Fomular lautet dann:

PHP:
<?php
    
echo "<form".
        
" action=\"$_SERVER['PHP_SELF']\"".
         
" method=\"$_POST\"".
         
" accept-charset=\"ISO-8859-1\">\n";
    echo 
"<select name=\"ID\">";
    echo 
" <option value=\"0\">Bitte User auswählen</option>\n";
    echo 
" <option value=\"1\">Flitze</option>\n";
    echo 
" <option value=\"2\">Hirnhamster</option>\n";
    echo 
" <option value=\"3\">Wochenendpanda</option>\n";
    echo 
"</select>\n";
    echo 
"<input type=\"submit\" name=\"submit\" value=\"Auswählen\">\n";
    echo 
"</form>\n";
?>


Die Daten werden durch $_SERVER['PHP_SELF'] an das gleiche Skript geschickt, in dem auch das Formular definiert wurde. In $_POST['ID'] steht dann die ID des Users, dessen Daten wir suchen. Um die Daten von dem Formular an MySQL zu übergeben, müssen wir $_POST['ID'] an der entsprechenden Stelle einbinden. Ich erinnere nochmal daran, das Query als String in $sql gespeichert wird und das Werte, die in einen MySQL Query gesetzt werden, in Single Quotes ( ' ) stehen sollten. Außerdem achten wir natürlich auf SQL-Injection und verwenden mysql_real_escape_string().

Daraus ergibt sich dann folgender Befehl:

PHP:
<?php
    
// Prüfen, ob das Formular abgeschickt und ein Benuter ausgewählt wurde
    
if(isset($_POST['submit']) AND $_POST['submit']=='Auswählen' AND
       isset(
$_POST['ID']) AND $_POST['ID']!='0'){
        
$sql "SELECT
                            Name,
                            Email
                FROM
                            User
                WHERE
                            ID = '"
.mysql_real_escape_string($_POST['ID'])."'
               "
;
    
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    }
    else {
        
// Formular anzeigen
    
}

    
// Erläuterungen

    // Variable definieren und String mit " öffnen
    
$sql "SELECT            // Befehl
                        Name, // Tabellenspalte 1
                        Email // Tabellenspalte 2
            FROM              // FROM Expression
                        User  // Tabelle
            WHERE             // WHERE Expression
            // '"
Single Quote öffnen und String beenden um die Variable einzufügen
                        ID 
'".mysql_real_escape_string($_POST['ID'])."'
            
// ."' String wieder beginnen und Single Quotes schließen
           
";
           // String mit " 
schließen und Zeile mit beenden
    
// Query ausführen und Resultat speichern
    
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
?>


Angenommen, wir wählen den User "Flitze" aus, dann wird die 1 als ID übergeben. Der Query sieht dann so aus:

PHP:
<?php
    $sql 
"SELECT
                        Name,
                        Email
            FROM
                        User
            WHERE
                        ID = '1'
           "
;
    
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
?>


Das wars eigentlich auch schon. Die Daten kommen aus einem Formular und werden von einem Skript verarbeitet.

INSERT


Das Einfügen von Daten funktioniert prinzipiell genauso wie eine SELECT-Abfrage. Beispiel dazu:

PHP:
<?php
    
if(isset($_POST['submit']) AND $_POST['submit']=='Speichern'){
        
$sql "INSERT INTO
                            User
                            (
                            Name,
                            Email
                            )
                VALUES
                            (
                            '"
.mysql_real_escape_string($_POST['Name'])."',
                            '"
.mysql_real_escape_string($_POST['Email'])."'
                            )

               "
;
        
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    }
    else {
        echo 
"<form".
             
" action=\"$_SERVER['PHP_SELF']\"".
             
" method=\"$_POST\"".
             
" accept-charset=\"ISO-8859-1\">\n";
        echo 
"<input type=\"text\" name=\"Name\">\n";
        echo 
"<input type=\"text\" name=\"Email\">\n";
        echo 
"<input type=\"submit\" name=\"submit\" value=\"Speichern\">\n";
        echo 
"</form>\n";
    }
?>


Der User kann seinen Namen und Seine Email-Adresse eingeben. Diese werden beim Drücken vom submit-Button in der Datenbank gespeichert.

Zurück zur vorigen Seite:
Formularprüfung - Daten eintragen
Weiter zur nächsten Seite:
Formularprüfung - Typischer Formularaufbau, Affenformular

»» Zurück zum Menu

Suchmaschinenoptimierung

Suchmaschinenoptimierung (SEO - Search Engine Optimization)

Ranking

Tutorials (13)

8.6
8.4
8

Workshops (3)

8.8
8.7
7.6

Tipps (12)

7.2
6.7
6.5

Artikel (32)

8.4
8
7.2

RSS Feeds

Full Feed Tutorials Workshops Tipps Artikel

Twitter

Follow me on Twitter

Partner & Links


Valid HTML 4.01 Transitional
Valid CSS
nach oben

Diese Seiten unterstützen MyWebsolution:
 
© MyWebsolution.de
2006-2024