luciver1981
Goto Top

PHP While abfragen und Datenbank aktualisieren

Hallo Admins

Ich habe eine Seite gebastelt wo mit Benutzerdaten gearbeitet wird. Ich möchte jetzt jeden Nutzer ermöglichen gewisse Inhalte von ihm selber geändert werden kann. Hier mal mein Konstrukt was so aber nicht funktioniert (Leere Seite ohne Fehlermeldung)
Mit
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht  

waehlen.");  
	
$sql = "SELECT benutzer, status, beschreibung, name FROM user";  
	
$user_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");  
	
while ($row == mysql_fetch_row($user_query)){
	
while ($row->benutzer == $benutzer)
{
echo "<div class='text-allgemein'>$row->benutzer</div>";  
echo "<div class='text-allgemein'>$benutzer</div>";  
echo "<div class='text-allgemein'>$row->status</div>";  
	
}
}
Hier möchte ich ertmal die Bereits gespeicherten Daten des Nutzers abrufen.
Die Abfrage soll ist der Benutzer in Datenbank = angemeldeter Benutzer (Variable $benutzer) dann gib seine Daten aus.

Content-Key: 202880

Url: https://administrator.de/contentid/202880

Printed on: April 24, 2024 at 08:04 o'clock

Member: ChrisMoltisanti
ChrisMoltisanti Mar 06, 2013 updated at 12:12:17 (UTC)
Goto Top
Hi
Bitte als Code posten.

while ($row->benutzer == $benutzer)

macht keinen Sinn! Wo ist $Bneuzter definiert? Wieso nicht != NULL oder sowas? Kenne die Syntax von Php nicht näher, nur Java und C++

Grüße
Member: SlainteMhath
SlainteMhath Mar 06, 2013 at 12:32:19 (UTC)
Goto Top
Moin,

Die Abfrage soll ist der Benutzer in Datenbank = angemeldeter Benutzer (Variable $benutzer) dann gib seine Daten aus.
Sowas frägt man nicht in einer while-Schleife ab, sondern in der WHERE-Klause der SQL Abfrage. In deinem Fall etwa:

$sql = "SELECT benutzer, status, beschreibung, name FROM user WHERE benutzer='" . $benuzer . "'";  

Die 2te While-Schleife (die wenn dann eh ein if-Statement sein sollte) kann dann raus.

lg,
Slainte
Member: nxclass
nxclass Mar 06, 2013 updated at 13:26:19 (UTC)
Goto Top
$sql = "SELECT benutzer, status, beschreibung, name FROM user";  
// ...
while ($row == mysql_fetch_row($user_query)){
while ($row->benutzer == $benutzer)

$sql = "SELECT `benutzer`, `status`, `beschreibung`, `name` FROM `user` WHERE `benutzer` = '{$benutzer}'"; // vorsicht SQL injection möglich  
// ...
while ($row = mysql_fetch_row($user_query)){
... die 2. while Anweisung samt {} kann dann weg - wenn dann müsste das ein if sein.
Member: Luciver1981
Luciver1981 Mar 06, 2013, updated at Mar 07, 2013 at 14:33:38 (UTC)
Goto Top
Danke Slainte und nxclass der Selektor kommt also in die Datenbankabfrage und nicht in die While Schleife, wieder was gelernt face-smile . Habs jetzt so gelöst
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht  

waehlen.");  
	
$sql = "SELECT benutzer, status, beschreibung, name FROM user WHERE benutzer='" . $benutzer . "'";  
	
$user_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");  
	
while ($row = mysql_fetch_object($user_query)){
bla
}
Und das update der Datenbank dann so:
$sql = "UPDATE user SET status = '" . $status . "', beschreibung = '" . $beschreibung . "' WHERE benutzer='" . $benutzer . "'";  
	
$user_query = mysql_query($sql) or die("Speichern fehlgeschlagen");  
	
echo "<p class='text-allgemein'>Deine Daten sind gespeichert</p>";  
Member: SlainteMhath
SlainteMhath Mar 06, 2013 at 14:19:25 (UTC)
Goto Top
ja genau.

Jetzt wendest du noch die funktion "mysql_real_escape()" auf alle in deinen SQL Queries verwendeten Variablen an bevor du sie benutzt und alle ist gut face-smile

ps: und verwendete doch bitte mal code-Tags in deinen Beiträgen, dann kann man deinen Source-Code auch besser lesen.
Member: Luciver1981
Luciver1981 Mar 06, 2013 at 15:26:55 (UTC)
Goto Top
Da sprichst du ein gutes Thema an hab ein Gästebuch. Wie könnte ich mich da vor SQL Injection schützen?
Member: godlie
godlie Mar 06, 2013 at 20:58:00 (UTC)
Goto Top
Ganz einfach in dem du dich mit dem Thema SQL Injection beschäftigst.
Member: Luciver1981
Luciver1981 Mar 07, 2013 at 07:22:04 (UTC)
Goto Top
Hast du vielleicht paar nützliche Links oder Tipps wie ich meine Variablen schützen kann bevor sie in die Datenbank geschrieben werden.
Member: SlainteMhath
SlainteMhath Mar 07, 2013 at 07:45:44 (UTC)
Goto Top
Hast du vielleicht paar nützliche Links oder Tipps wie ich meine Variablen schützen kann bevor sie in
die Datenbank geschrieben werden.

Ich zitier mich mal selbst:

Jetzt wendest du noch die funktion "mysql_real_escape()" auf alle in deinen SQL Queries verwendeten
Variablen an bevor du sie benutzt und alle ist gut


Anfangen könntest Du hier: http://de.wikipedia.org/wiki/SQL-Injection
und zur erheiterung noch das hier face-smile