PHP und SQL kurz verrbinden (Namesliste)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgeben
auswahl
benutzen
code
dank
datenbank
eingabefeld
eintragen
fehlermeldung
fertigen code
formular
host
liste
mache
nachname
schau
tabelle
text
verbindung
vergleichen
-
Ich möchte gerne ein PHP Skript haben mit einem Pulldown (Auswahl: Junge,Mädchen,Nachname) und eine Eingabefeld haben.
Kurzes Beispiel.
Paul besucht die Seite wählt Jungennamen und schreibt "Peter" php guckt ob der Name schon in der SQL steht wenn nein Dann Danke für deine Name wenn ja.Dieser Name ist schon in der Liste dass ganze soll so einfach sein wie es geht muss nicht sehr viel schnick schnack sein.
Wie setzte ich das Um? Wäre es noch sinnvoll eine Anti-Spam mit dran zu hängen?
Wenn ja wie mache ich das?
lg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Willst du das nun im Learning by Doing-Verfahren durchziehen, willst du am liebsten einen fertigen Code oder magst du nur Ansätze, um das ganze dann selber durchzuführen?
Für Fertig-Codes bin ich irgendwie der falsche, aber ich kann dir mal ein paar Ansätze geben.
Problematisch ist, dass man das Wort "Peter" ja doch sehr unterschiedlich schreiben kann:
1. Peter
2. peter
3. pETER
usw...
Wenn du das verhindern willst solltest du bei der Überprüfung alle Buchstaben auf Kleinbuchstaben herunterbrechen und mit der Datenbank vergleichen. Du schaust also, ob es den Namen "peter" schon gibt.
Danach kannst du die Daten in die Datenbank schreiben. Ob Anti-Spam sinnvoll ist oder nicht kommt immer drauf an. Captchas reduzieren immer irgendwo den Bedienkomfort. -
Pulldown (Auswahl: Junge,Mädchen,Nachname) und eine Eingabefeld haben.
Das bekommst du alles durch HTML hin. Suchwort Formular.
Paul besucht die Seite wählt Jungennamen und schreibt "Peter" php guckt ob der Name schon in der SQL steht wenn nein Dann Danke für deine Name wenn ja.Dieser Name ist schon in der Liste dass ganze soll so einfach sein wie es geht muss nicht sehr viel schnick schnack sein.
Wenn du in der MySQL Datenbank den Wert für den Namen auf Unique setzt, und per
"OR die(mysql_error())"
das eintragen in die Datenbank beendest, kommt bei doppelten Namen:
"Duplicate entry 'Peter' for key 2"
also statt des
mySQL_error()
kannst du da dann auch ne "persönlichere" Fehlermeldung ausgeben.
Wäre es noch sinnvoll eine Anti-Spam mit dran zu hängen? Wenn ja wie mache ich das?
Was meinst du mit Anti Spam? das nicht jemand "guigasiulf" reinschreibt?
Ansonsten, schau dir an, wie man ein HTML Formular erstellt.
Dann schau dir die verknüpfung mit PhP an (Stichworte "string" und "post"
und dann setzte eine MySQL Datenbank auf.
In der Reihenfolge würde ich es machen. Also zuerst eine HTML Seite programmieren. Diese dann zu einer PhP Seite "umwandeln", die durch betätigen des "Submit" Buttons die eingegebenen Daten wieder auf einer neues Seite ausgeben.
Und beschäftige dich danach mit MySQL
OK ciao dann.
Beitrag zuletzt geändert: 18.7.2009 10:19:58 von saalko -
Mir wäre es am liebsten ein schönen fertigen Code So das ich nur noch von Lima die Datenbank zuweisen muss und dass was. Mit Anti spam meint ich sowas das dort keiner mist reinschreibt. Aber wenn es sinnlos ist.
-
wär halt ein bisschen schwierig rauszufinden, was genau mist ist... dafür bräuchtest du zum beispiel eine referenztabelle, in der alle möglichen vornamen gelistet sind, zum vergleichen. diese tabelle wäre dann aber wohl kaum vollständig...
-
nen komplett fertigen code werde ich dir nicht geben, aber mal ein kleines beispiel.
als 1. machst du dir ein Datei Namens
datenbank.php
<?php define('Host', 'mysql.lima-city.de'); define('User', 'USER'); define('Pass', 'Passwort'); define('DATABASE', 'deine Datenbank'); ?>
Der Host ist der von lima
bei User und Passwort, nimmst du einfach deine Zugangsdaten zu PhP my Admin
und Database, der Datenbank name.
Danach eine namens index.php:
<?php include "datenbank.php"; @mysql_connect(Host, User, Pass) OR die("Es konnte keine Verbindung aufgebaut werden"); mysql_select_db(DATABASE) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error()); echo " <table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"4\"> <tr> <td class=\"reg\"> <form action=\"eintragen.php\" method=\"post\" class=\"formular\"> Titel <br> <input type=\"text\" name=\"topic\" class=\"txt\" id=\"name\" /> </td> </tr> <tr> <td class=\"reg\"> Nachricht <br> <textarea name=\"text\" rows=\"7\" cols=\"75\" class=\"txt\"></textarea> </td> </tr> <tr> <td class=\"reg\"> <input type=\"submit\" class=\"txt\" value=\"Thema erstellen\"> </td> </tr> </table> </html> "; ?>
Und jetzt eine Namens:
eintragen.php
<?php include "datenbank.php"; @mysql_connect(Host, User, Pass) OR die("Es konnte keine Verbindung aufgebaut werden"); mysql_select_db(DATABASE) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error()); mysql_query("INSERT INTO thread (topic,text) VALUES ( '".$_POST['topic']."', '".$_POST['text']."' );") OR die(mysql_error()); ?>
So und jetzt erstellst du dir noch in der Datenbank eine Tabelle namens "thread" mit 3 Spalten.
Die 1. heißt "id", die setzt du auf int, machst ein häckchen bei Primärschlüssel und einen bei Auto increment.
Die 2. heißt topic, da lässt du varchar und sagst eine länge von 30
die 3. heißt text, da auch varchar länge von 100.
Dann müsstest du erstmal Sachen in die Datenbank eintragen können.
OK schade ich muss jetzt los.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage