Haumis wbb hilfe 
Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite
Galerie Datenbank Zum Portal

Startseite| Das Board| wbb2| wbblite| Wo finde ich was| Veränderungen| Grafik-Bereich-WBB2| Boardspiele| Vorstellungen| Allgemeines| Trainingscenter|
Haumis wbb hilfe » ...:::Trainingscenter-wbb2:::... » mysql » Datenbank füllen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Datenbank füllen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
haumi haumi ist männlich
Boardbetreiber

images/avatars/avatar-214.jpg
[meine Galerie]


Dabei seit: 06.06.2009
Beiträge: 3.441
Herkunft: NRW
Postid: 11432
Datenbank füllen Beitrag Nr.: 1     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Weil wir ja nun nicht nur Daten eingeben und sofort anzeigen wollen haben wir heute eine bestehende Datenbank erweitert.
und zwar wie folgt:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
CREATE TABLE IF NOT EXISTS `christina` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `name` varchar(30) NOT NULL,
  `passwort` varchar(50) NOT NULL,
  `gruppe` varchar(30) NOT NULL,
  `land` varchar(20) NOT NULL,
  `sport` varchar(255) NOT NULL,
  `interessen` varchar(255) NOT NULL,
  `kommentar` text,
  `bedingung` int(1) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM; 

Nun sind wir in der Lage, diese Tabelle mit den Daten aus unserem Formular zu füllen.
Wie stellen wir das aber an?
Nun es gibt nicht allzuviele SQL-Befehle die wir benötigen.
Zum beschreiben, also neue Datensätze hinzufügen, verwenden wir den SQL-Befehl: "INSERT INTO"
hier müssen wir noch die Datenbank und die Tabelle angeben in die der Datensatz eingeschrieben werden soll.
INSERT INTO christina! (eigendlich muss hier noch die Datenbank angegeben werden ,
aber da in fast allen Fällen die aktuelle Datenbank schon geöffnet ist und wir uns darauf beziehen,
können wir die Datenbankbezeichnung weglassen.)
Als nächstes müssen die zu beschreibenden Felder der Tabelle aufgelistet werden.
Diese werden in runden Klammern und durch Komma getrennt angegeben: (name,passwort,gruppe,land,sport,interessen,kommentar,bedingung)
anschließend werden mit dem Befehlswort VALUES die einzuschreibenden Werte ebenfalls in runden Klammern angegeben.
VALUES ('$name','$pass','$alter','$land','$sport','$interesse','$kommentar','$bedi
ngung')
zu Beachten ist auch hier, das Zeichenketten in einfache oder doppelte Hochkommas zu setzen sind.
Die ganze SQL-Anweisung sieht denn so aus:
code:
1:
"INSERT INTO christina (name,passwort,gruppe,land,sport,interessen,kommentar,bedingung) VALUES ('$name','$pass','$alter','$land','$sport','$interesse','$kommentar','$bedingung')";

Da wir die Daten ja von unserem Formular formular.html an die php-Datei test2 schicken, so erweitern wir diese um den SQL-String, den wir in der Variablen $abfrage speichern.
code:
1:
$abfrage = "INSERT INTO christina (name,passwort,gruppe,land,sport,interessen,kommentar,bedingung) VALUES ('$name','$pass','$alter','$land','$sport','$interesse','$kommentar','$bedingung')";

Mit dem Befehl mysql_query senden wir denn diese Abfrage an den Datenbankserver und speichern das zurückgelieferte Ergebnis in der Variablen $send ab.
code:
1:
$send = mysql_query($abfrage);

War die Abfrage erfolgreich so wird true zurück geliefert und war die Abfrage nicht erfolgreich so wird false zurück geschickt-
Das nutzen wir, um (jedenfalls in der Testphase) die Rückmeldung auszuwerten.
code:
1:
2:
3:
4:
5:
if($send) {
echo "Alles Klar";
}else{
echo "Fehler:  " .mysql_error();
}

War die Aktion erfolgreich, so wird Alles Klar ausgegeben und wenn nicht dann wird Fehler: mit der mysql-Fehlermeldung angezeigt.

Bevor wir jedoch überhaupt mit der Datenbank korrespondieren können,
müssen wir eine Verbindung zu dieser herstellen.
Dazu schreiben wir einen 8-Zeiler in die Datei config.inc.php welche im gleichen Verzeichnis abgelegt wird wie unsere Test2.php.
Die config.inc.php hat folgenden Inhalt:
code:
1:
2:
3:
4:
5:
6:
7:
8:
<?php	
$sqlhost = "localhost";
$sqluser = "uebung_fb";
$sqlpassword = "das Passwort";		
$connid = mysql_connect($sqlhost, $sqluser, $sqlpassword);			
$sqldb ="uebung_fb";
$dummy = mysql_select_db($sqldb)	or die("Auswahl der Datenbank ist fehlgeschlagen");		
?>

Diese confic.inc.php wird in unsere Test2.php mit require eingebunden.
Eine mit require eingebunden Datei wird an der Stelle wo sie eingebunden ist ausgeführt; es ist denn so als würde der Code aus dieser Datei an der Position require stehen.

Unsere test2.php sieht nun wie folgt aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
<?php
require("./config.inc.php");

$name = $_POST['Name'];
$pass = $_POST['Passwort'];
$alter = $_POST['Alter'];
$land = $_POST['Land'];
$anzahl = count($_POST['Interessen']);
$menge = count($_POST['sport']);
$kommentar = $_POST['Kommentar'];
$bedingungen = $_POST['Bedingungen'];

if($bedingungen != "ja") $bedingungen = "nein";

echo "<br>Name:  " .$name ."<br><br>";
echo "Passwort:  " .$pass ."<br><br>";
echo "Alter:  " .$alter ."<br><br>";
echo "Land: " . $land ."<br><br>";
echo "Sport: ";
for($n=0;$n<$menge;$n++) {
echo $_POST['sport'][$n] ."  ";
$sport .= $_POST['sport'][$n];
}
echo "<br><br>";
echo "Interessen: ";
for($i=0;$i<$anzahl;$i++) {
echo $_POST['Interessen'][$i] ."  ";
$interessen[] = $_POST['Interessen'][$i];

}

$interesse = implode(",",$interessen);

echo "<br><br>";

echo "Kommentar:  " .$kommentar ."<br><br>";
echo "Bedingungen: " .$bedingungen;

$abfrage = "INSERT INTO christina (name,passwort,gruppe,land,sport,interessen,kommentar,bedingung) VALUES ('$name','$pass','$alter','$land','$sport','$interesse','$kommentar','$bedingung')";
$send = mysql_query($abfrage);

if($send) {
	echo "Alles Klar";
	}else{
		echo "Fehler" .mysql_error();
	}
?>

Auf zwei Neuerungen möchte ich noch hinweisen.
Beim array "sport" werden die Daten aus dem Formular nahtlos aneiander gehängt (FußballSchwimmenFechten)
Im Fall des arrays interessen erstellen wir intern ein neues array
code:
1:
$interessen[] = $_POST['Interessen'][$i];

und fügen mittels des Befehls inplode ein Trennzeichen (hier ein Komma) zwischen den Wörtern ein.
code:
1:
$interesse = implode(",",$interessen);

(HTML,CSS,mysql)

Somit sind wir später beim auslesen in der Lage diese Wörter wieder einzeln herzustellen.

Dann liefert der Wert bedingung "ja" an unsere php-Datei, wenn ein Häkchen dort gesetzt wurde und einen leeren String, wenn die Checkbox leer bleibt.
Damit im Falle des Leerstrings ein nein in die Datenbank geschrieben wird ergänzen wir das mit folgendem Befehl:

code:
1:
if($bedingungen != "ja") $bedingungen = "nein";


Soweit unsere Übertragung vom Formular bis hin zur Datenbank.

LG
haumi

__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.

05.04.2012 19:53 haumi ist offline E-Mail an haumi senden Homepage von haumi Beiträge von haumi suchenNehmen Sie haumi in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Haumis wbb hilfe » ...:::Trainingscenter-wbb2:::... » mysql » Datenbank füllen

Views heute: 14.037 | Views gestern: 6.918 | Views gesamt: 70.940.612
Powered by Burning Board 2.3.6 © 2001-2004 WoltLab GmbH
Am Netz seit dem 3.6.2009 - Powered by © haumis-Team
Style & Buttons © by FriendsbistroTeam
Boardregeln Impressum & Haftungsauschluss Datenschutzerklärung