MySQL Datenbank Spalte auslesen und in php variable speichern?
Es sollte auch gehen wenn ganz mehr als nur eine Information in einer Spalte ist
3 Antworten
Wie die anderen schon erwähnten kannst du alle Spalten in einem Array speichern. Du kannst dann außerdem jede einzelne Spalte über diesen Array abrufen.
Das Passwort sollte möglichst verschlüsselt sein. Ich mach das immer mit MD5. Soll unsicher sein, aber das ist quatsch. Du kannst auch SHA2 nehmen, ist völlig egal.
<?php $geheimerString = "sdfkojf894w30&/§=njdfö"; if(isset($_POST["login_mail"])) { $mail = mysqli_real_escape_string(db(),$_POST["login_mail"]); $pw = mysqli_real_escape_string(db(),$_POST["login_passwort"]); $pw = md5($pw.$geheimerString); $getUser = mysqli_query(db(),"SELECT * FROM user WHERE mail = '".$mail."' AND passwort = '".$pw."'"); if(mysqli_num_rows($getUser) == 0) { // USER NICHT GEFUNDEN BZW DATEN FALSCH } else { // USER GEFUNDEN BZW DATEN SIND KORREKT $user = mysqli_fetch_assoc($getUser); }
In der Variable "$user" sind jetzt alle Spalten des Users mit den angegebenen Daten gespeichert.
Damit diese Daten auch auf anderen Seiten aufrufbar sind, solltest du die UserID in einer Session speichern und in einer globalen Datei per query in einer Variable speichern, damit du auf jeder Seite überprüfen kannst, ob der User angemeldet ist.
Die Session speicherst du so:
<?php session_start(); $_SESSION["USER_ID"] == $user["id"]; ?>
Die Funktion "session_start();" sollte in jeder deiner Dateien als Erstes stehen. Somit ist gewährleistet, dass du auf jeder Seite Zugriff auf die Daten des angemeldeten Users hast.
Der Befehl, der darunter steht, gehört in die Datei, die die POST Übergaben auswertet (Die LOGIN-Datei).
Undzwar so:
else
{
// USER GEFUNDEN BZW DATEN SIND KORREKT
$user = mysqli_fetch_assoc($getUser);
$_SESSION["USER_ID"] == $user["id"];
}
Du kannst nun einzelne Spalten des angemeldeten Users zum verwerten aufrufen.
Undzwar so:
<?php $userName = $user["name"]; $userMail = $user["mail"]; $userBIO = $user["bio"]; Usw..
Eine Spalte kann aus 0 bis N Datensätzen bestehen. Deine Variable müsste dann eine Liste, Array (was in php möglich ist weiss ich nicht, da ich nicht mit php auskenne) mit Elemtenten vom Datentyp = Spalte sein um alle Werte speichern zu können.
Viele Programmiersprachen haben ähnliche/gleiche Datentypen. Ich habe viele Programmiersprachen gelernt und weiss, das man vieles sprachenunabhängig (nicht konkret) beantworten kann. Ich wollte dir nur helfen. Konkrete Lösungen zum abschreiben kann ich aber nicht liefern. Helfen kann es trotzdem.
is etwas undeutlich was du willst. du kannst die spalte auslesen und in nem array speichern - dann hast nur eine variable. du kannst se aber auch als string verketten.
wenn mehrere informationen in einer zelle sind dann kannst du diese mit substr, explode trennen
btw. allerdings - wen du ne db-connection aufmachst und dir deine db-infos holst - haste ja schon nen array den du weiterverarbeiten kannst...
was haste denn vor damit?
Kannst du des ganze in einen Code schreiben? Ich verstehe das nicht so ganz mit den num_rows
wozu?
"select xy from user_table where username=$uname and password=$passwd"
-> num_rows > 0 -> erfolgreich
-> num_rows = 0 -> nicht erfolgreich/ kein user
* password sollte natürlich möglichst verschlüsselt sein, daher sollte hier auch eine verschlüsselung angegeben werden da ein direktvergleich nicht möglich is.
Wenn du dich nicht mit Php auskennst dann lass doch dir Antwort