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-ID: 202880

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

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

ChrisMoltisanti
ChrisMoltisanti 06.03.2013 aktualisiert um 13:12:17 Uhr
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
SlainteMhath
SlainteMhath 06.03.2013 um 13:32:19 Uhr
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
nxclass
nxclass 06.03.2013 aktualisiert um 14:26:19 Uhr
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.
Luciver1981
Luciver1981 06.03.2013, aktualisiert am 07.03.2013 um 15:33:38 Uhr
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>";  
SlainteMhath
SlainteMhath 06.03.2013 um 15:19:25 Uhr
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.
Luciver1981
Luciver1981 06.03.2013 um 16:26:55 Uhr
Goto Top
Da sprichst du ein gutes Thema an hab ein Gästebuch. Wie könnte ich mich da vor SQL Injection schützen?
godlie
godlie 06.03.2013 um 21:58:00 Uhr
Goto Top
Ganz einfach in dem du dich mit dem Thema SQL Injection beschäftigst.
Luciver1981
Luciver1981 07.03.2013 um 08:22:04 Uhr
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.
SlainteMhath
SlainteMhath 07.03.2013 um 08:45:44 Uhr
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