Username auslesen aus einer mysql datenbank mit php?
Ich habe eine Datenbank, in der man sich mit meinem php script einloggen kann.
Jetzt möchte ich gerne, dass der user mit seinem angegebenen Namen angesprochen wird. Dafür müsste ich die zu dieser id gehörigen reihe auslesen an der stelle name.
Irgendwie habe ich aber drei Ergebnisse, wahrscheinlich alle drei personen, die schon in der Datenbank sind.
Deshalb hier meine Frage:
Wie lese ich nur genau ein Feld der Datenbank aus, und speichere das Ergebnis dann in der Variablen, die ich in Text einbinden kann?
Vielen Dank
4 Antworten
Hast du aber gerade Glück :)
public function readLogin()
{
$query = "SELECT name from login WHERE name=?";
$stmt = $this->connection->prepare($query);
$stmt->bind_param('s', $this->login_name);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
if ($row['name'] == $this->login_name) {
return $row['name'];
}
}
}
Mein Beispiel ist eine Klasse (OO). Daher nicht wundern, dass "login_name" nicht zu sehen ist. Es handelt sich um ein Attribut meiner Klasse. "login_name" kannst du analog zu deinem Usernamen setzen.
Wahrscheinlich hast du drei User mit dem gleichen Namen auf der DB - was selbstverständlich nicht sein sollte.
hmmmm.... ich würde Feldbezeichnungen wie "name" generell vermeiden, sondern eindeutigere Bezeichnungen verwenden, die zudem nicht auch in irgendwelchen Programmier- oder Scriptsprachen als Schlüsselwörter verwendet werden. Das führt sonst gerne mal zu sehr lustigen Verhaltensweisen und kuriosen Ergebnissen.
Wenn die Spalte den Benutzernamen speichern soll, warum also nicht username statt name? Schon hast du es vermieden, das in manchen Sprachen übliche Schlüsselwort name zu verwenden. Zudem ist der Feldbezeichner dann eindeutig - auch ohne weitere Erklärungen.
Select name FROM'tabelle' where username='username';
So erhälst du den Namen (Spalte) des Namen, wo der Username dem entspricht. Diesen kannst du dann in die Variable speichern.
select name from users where id = "1"
mal simpel gemacht. mit where kannst du filtern auf ein feld. die 1 ersetzt dann z.b. durch $id
OK, versuch ich mal