Auslesen und beschreiben einer MySQL Datenbank
Hi,
ich will für meine Web Seite eine MySQL Datenbank erstellen mit folgenden Funktionen: 1. Es soll eine Spalte für User geben, eine für Passwörter und eine für E-Mail Adressen. (a) Wie würde die Datenbank aussehen? 2. Wie kann man dann aus der Datenbank bestimmte Felder auslesen? Wenn man zum Beispiel das Passwort von "user1" auslesen will, was muss man da machen? 3. Wie kann man eine Datenbank bearbeiten? Wenn man Zum Beispiel die E-Mail Adresse von "user1" bearbeiten will? 4. Wie kann man bestimmte Zellen oder Spalten aus der Datenbank entfernen? Wenn man zum Beispiel "user1" löschen will, was muss man da machen? Es wäre toll, wenn mir jemand helfen kann! Vielen Dank schon mal jetzt für die Hilfe. VG linux23 |
AW: Auslesen und beschreiben einer MySQL Datenbank
Am besten liest du dir erstmal was zum thema durch, das hier von null auf zu erklären ist recht langwierig und foren sind ja für konkrete probleme...
http://ffm.junetz.de/members/reeg/DSP/ |
AW: Auslesen und beschreiben einer MySQL Datenbank
Da hat BenniG. recht... Schau dir erst einmal die Grundlagen an. Danach brauchst du für deine Ansprüche die Befehle SELECT, INSERT, UPDATE und DELETE.
Ist einfacher als du denkest, wirklich.... Damir |
AW: Auslesen und beschreiben einer MySQL Datenbank
Die beiden haben natürlich recht..., aber hier vielleicht eine kleine Einstiegshilfe:
Die Datenbank: (mySQL / Name: users) user_id (auto-increment, primary key) user_name (text) user_password (text) user_email (text) Die Datenbank-Connection: (mySQL / Name: users) Normalerweise lagert man die Datenbank-Connection in eine externe PHP Datei aus (z.B. conn.php) und verlinkt auf jeder Seite, auf der man Datenbankverbindungen benötigt vorher auf die conn.php. conn.php kann so aussehen (in diesem Fall lokal auf deinem Rechner): PHP-Code:
PHP-Code:
Die user_id wird nicht von dir eingefügt, sondern das erledigt die Datenbank durch die Einstellung 'auto-increment' alleine. Das ist wichtig, damit jedem Datensatz eine unverwechselbare ID (user_id) zugewiesen wird, anhand derer du z.B. in der Select Anweisung durch deine Datensätze navigieren kannst. Es kann so (auf der technischen Seite) nie zu Verwechslungen kommen, selbst wenn du es zulassen würdest, dass mehrere User den selben Namen haben. PHP-Code:
In diesem Fall wird das Passwort eines einzelnen Users erfragt. Die Anzahl der auszugebenden Datensätze begrenzt man mit 'LIMIT = 1'. PHP-Code:
Code:
<b><?= $row_rsGetUserPassword['user_password'] ?></b> In diesem Fall sollen alle User Namen und die dazugehörigen Passwörter erfragt werden. Die Anzahl der auszugebenden Datensätze kann man wiederum mit 'LIMIT = 10' berenzen oder man lässt 'LIMIT' einfach weg dann werden alle Datensätze ausgegeben. Mit 'ORDER BY' lässt sich die Reihenfolge der Datensätze beeinflussen. 'ASC' steht für 'ascending' (aufsteigend: 1,2,3,4 o. a,b,c,d) und DESC steht für 'descending' (absteigend: 4,3,2,1 o. d,c,b,a). Damit man gegebenenfalls auf das Ergebnis dieser Datenbankabfrage mehrfach zurückgreifen kann, packen wir die gefundenen Datensätze in ein Array ($allUserInfo). Auf den Inhalt dieses Arrays greift man dann zurück, wenn man die User Namen und Passwörter im HTML darstellen will. Übrigens: Das * hinter dem Select sagt aus, dass diese Abfrage die Daten aus jeder Datenbanktabellenspalte (dh. user_id,user_name,user_password,user_email) abfragt. Da wir für unsere Ausgabe von User Namen und User Passwörtern aber nicht alle brauchen, könnte man das Sternchen auch durch die einzelnen Spalten, die man braucht ersetzen: SELECT users.user_name, users.user_password. Für unser Beispiel ist das jetzt egal, dennoch sollte man sich das angewöhnen, da bei grossen Datenbanken die Menge der überflüssig abgefragten Spalten auf die Performance geht. PHP-Code:
PHP-Code:
PHP-Code:
PHP-Code:
|
AW: Auslesen und beschreiben einer MySQL Datenbank
@marc26
Danke das du dir die Zeit genommen hast!!!! |
AW: Auslesen und beschreiben einer MySQL Datenbank
es sieht wahrlich komplizierter aus als es ist...
|
AW: Auslesen und beschreiben einer MySQL Datenbank
hey marc, hat mir sehr weitergeholfen, 2 kleine Probleme hab ich noch a) ich möchte überprüfen, ob das wirklich eine Email Adresse ist und b) ich möchte die Tabellenzeilen abwechselnd mit unterschiedlichen Hintergrundfarben versehen. Vielleicht kannst du das noch ergänzen. Danke
|
AW: Auslesen und beschreiben einer MySQL Datenbank
Vor dem Einfügen: Validierung
Weil es gefragt wurde, kurz ein paar Worte zur Validierung. Es ist immer gut zu wissen, was man sich so alles in die Datenbank schreibt. Bestenfalls habt ihr z.B. Tausende von Anmeldungen und ein paar Spinner sind immer darunter, die versuchen euch und eurer DB zu schaden. In einem ersten Schritt sollte man die Daten, die aus einem Formular kommen validieren, auch wenn es sich um so scheinbar harmlose Dinge wie Email Adressen und User Namen handelt. Drei Fälle sind eigentlich gängig: a) Überprüfen, welche Länge ein String hat PHP-Code:
Diese Überprüfung kann mit 'normalem' PHP ziemlich lang werden, deshalb bedient man sich hier gerne einer 'Regular Expression' (regexp). PHP-Code:
Ob eine Email Adresse wirklich gültig ist, also ob sie wirklich existiert, kann man so natürlich nicht überprüfen. Allerdings kann man kontrollieren, ob die eingegebene Email Adresse zumindest so aussieht, d.h. alle Elemente einer Email Adresse hat. Die folgende Funktion muss man nicht komplett verstehen, was sie tut ist aber relativ simpel: sie überprüft, ob ein@ Zeichen vorhanden ist, ob sich vor dem @ Zeichen zugelassene Zeichen befinden, ob sich danach zugelassene Zeichen befinden, ob danach ein Punkt folgt und danach wiederum mind. 2 zugelassene Zeichen für den Domain Namen. PHP-Code:
Vor dem Einfügen: SQL Injections verhindern Um zu verhindern, dass nach der Eingabe von Formulardaten aus Eurer INSERT Anweisung eine DELETE Anweisung wird, sollte man sich einmal mit dem Thema 'SQL Injections' auseinandersetzen. Im Kern geht es darum, dass bestimmte Formulareingaben dazu führen können, dass Euer SQL Code 'erweitert' wird - und das kann Schaden anrichten. Wie man diesem Problem begegnet kann unterschiedlich sein, es hängt von Eurer Version und bestimmten Konfigurationen ab. Ein gutes Stichwort hierzu: 'magic_quotes'. Die folgende Funktion führt dazu, dass Eure Formulareingaben vor der Verwendung in einem SQL Statement 'escaped' werden. D.h., dass Zeichen die schädlich sein könnten z.B. Hochkommas mit einem \ (Slash) versehen werden, so dass Sie im SQL Statement keinen Schaden mehr anrichten können. Die Funktion fährt zweigleisig, so dass 'escaped' wird, unabhängig davon ob magic_quotes an- oder ausgeschaltet sind. PHP-Code:
PHP-Code:
|
AW: Auslesen und beschreiben einer MySQL Datenbank
Das Auslesen mehrerer Datensätze mit modulo (z.B. abwechselndem Zeilenhintergrund):
Der 'modulo' ist schon fast ein Reizthema in Foren. Deshalb vielleicht nochmal ganz einfach. Der 'modulo' ist ein Zähler, der so lange zählt, wie ihr es ihm sagt und sich ständig wiederholt bis er kein Futter mehr hat. Ein Beispiel: PHP-Code:
Code:
Futter: 0 - Modulo: 0 Also zunächst die Datenbankabfrage (wie gehabt): PHP-Code:
PHP-Code:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:19:01 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.