Wie am besten lösen?

Hi
Danke, nein ist zum Bearbeiten habe jetzt aber nur die ganze Überprüfungssache aus einer anderen Datei raus deshalb steht das alles noch falsch... !
 
Ansonsten war der Codeschnippsel so gedacht:
In der If-Bedingung, wo REQUEST_METHOD == POST geprüft wird, soll der Code hin, der beim versenden des Formulares angewendet werden soll. Der dazugehörige else-Zweig (isset($_GET['id']) [...]) tritt für den Fall ein, dass es sich NICHT um das abgeschickte Formular handelt, sondern um den Aufruf über den bearbeiten-Link mir der id=USER_ID in der URL.

die nächste If-Bedingung, die $userid !== false prüft soll das Formular mit den Daten des zu bearbeitenden Benutzers anzeigen.

Das heißt ich soll alles raushaun und nur den Code der beim versenden angewandt werden soll stehn lassen oder wie meinst das genau ?...


//edit///

also ich steck jetzt total .... habe jetzt versucht anhand der ID auch den benutzer mit auszugeben da dieser nicht geändert werden soll/darf aber irgendwie funktioniert das nicht gleich wie ID ausgabe im Formular... habe das script umgeschrieben das die Datensätze die , die ID erfassen oben sind, aber das funktioniert leider auch nicht mhmmm ich glaub i doktor morgen da weiter ^^ würde mich aber freuen wenn du mich weiterhin unterstützen würdest

lg
 
Zuletzt bearbeitet:
Du hast das Formular zwischen dem DB-Connect und dem REQUEST_METHOD. Weiter unten hatte ich eine Stelle markiert ("//Formular aufbauen"), wo ich das Formular eingeplant hatte.

Das Formular schickt die Daten also an die gleiche Datei, aus der auch das Formular kommt. Beim Abschicken springt PHP dann in den REQUEST_METHOD-Teil und leitet nach erfolgreichem eintragen in die Datenbank per header() zurück zur Liste.
Das Formular wird nur dann angezeigt, falls an die Datei über URL die BenutzerID des zu bearbeitenden Benutzers angegeben wurde. Wurde die Datei weder über das Formular aufgerufen, welches eine gültige BenutzerID mitschickt (die Prüfung auf $_POST['id']) noch über einen Link mit gültiger BenutzerID (Prüfung auf $_GET['id']), wird ein Fehler ausgeworfen (letztes else in meinem Schnippsel.)

Dein Code zur Überprüfung und Eintragung der Daten in die Datenbank kommt also direkt nach
PHP:
$userid = $_POST['id'];
und die Bedingung
PHP:
if(KEINE_FEHLER)
{
    // ...
}
sorgt dann bei Erfolg für die Weiterleitung auf die Benutzerliste (musst du noch anpassen). Erfolgt die Weiterleitung nicht, wird das Formular wieder angezeigt.
Nach dieser Zeile
PHP:
$userdata = mysql_fetch_object($result);
hatte ich die Anzeige des Formulars eingeplant (siehe Kommentare).

Wie gesagt, es ist nur eine Anregung von mir, an die du dich natürlich nicht halten musst. Du kannst auch mehrere PHP-Dateien nehmen (eine für die Anzeige des Formulars und die andere für die Abarbeitung der Daten aus dem Formular). Das ist ganz dir überlassen. Was deiner Meinung nach übersichtlicher und für dch leichter ist ;)
 
Zuletzt bearbeitet:
Hi

Danke funktioniert jetzt fast alles soweit =), nur eines funktioniert noch nicht er verändert leider nichts in der Datenbank mhmmmm....

Code:
     $aendern = "UPDATE users SET(user,pass,vorname,nachname,mail,punkte,klasse,admin) VALUES('$username', '$pass', '$vorname', '$nachname', '$mail', '$punkte', '$klasse', '$admin') WHERE id = '$userid'";
     $update = mysql_query($aendern);

das sollte ja soweit stimmen oder ?....

lg
 
Hast du dir den Query einmal ausgeben lassen und in PHPMyAdmin probiert oder hast du mal überprüft, ob mysql_error() dir einen Fehler ausgibt?

Ich kenne Update-Queries eigentlich so
SQL:
UPDATE
    `tabelle`
SET
    `spalte_1` = 'neuer Wert 1',
    `spalte_2` = 'neuer Wert 2',
    `spalte_3` = 'neuer Wert 3'
WHERE
    `feld` = 'Wert'
 
Hast du dir den Query einmal ausgeben lassen und in PHPMyAdmin probiert oder hast du mal überprüft, ob mysql_error() dir einen Fehler ausgibt?

Ich kenne Update-Queries eigentlich so
SQL:
UPDATE
    `tabelle`
SET
    `spalte_1` = 'neuer Wert 1',
    `spalte_2` = 'neuer Wert 2',
    `spalte_3` = 'neuer Wert 3'
WHERE
    `feld` = 'Wert'

Jup, genau...wobei ich mich da auch manchmal verhau :D

Aber das Escapen der Vars sollte auf keinen Fall vergessen werden ;)
 
Hast du dir den Query einmal ausgeben lassen und in PHPMyAdmin probiert oder hast du mal überprüft, ob mysql_error() dir einen Fehler ausgibt?

Ich kenne Update-Queries eigentlich so
SQL:
UPDATE
    `tabelle`
SET
    `spalte_1` = 'neuer Wert 1',
    `spalte_2` = 'neuer Wert 2',
    `spalte_3` = 'neuer Wert 3'
WHERE
    `feld` = 'Wert'


Also fehlermeldung hab ich schon nachgesehn wird aber keine ausgegeben mhmmm könnte es mal so probiern wie du es gesagt hast ^^
 
mhmm

habe es jetzt so probiert

Code:
    $dname = $_POST['dname'];
    $link = $_POST['link'];
	$format = $_POST['format'];

  

 

     $aendern = "UPDATE users
	 	Set
			`dname` = '$dname',
			`link` = '$link',
	 		`format` = '$format',
	  WHERE id = '$userid'";
     $update = mysql_query($aendern);

aber das funktioniert leider auch nicht ....
 
mach ein echo $aendern; und prüfe die Ausgabe mit phpMyAdmin. Studiere die Fehlermeldungen, pröble da herum und baus deine Erkenntnisse in dein Script ein.

Auf dei schnelle sehe ich höchstens '$userid' wobei ids normalerweise Zahlen sind, dann muss man es ohne '' schreiben
 
mach ein echo $aendern; und prüfe die Ausgabe mit phpMyAdmin. Studiere die Fehlermeldungen, pröble da herum und baus deine Erkenntnisse in dein Script ein.

Auf dei schnelle sehe ich höchstens '$userid' wobei ids normalerweise Zahlen sind, dann muss man es ohne '' schreiben

Also habe das jetzt mit echo probiert, soweit stimmt eigendlich alles, was mach jetzt nur irritiert ist dass bei WHERE id keine ID dabei steht .... sondern nur

Code:
WHERE id = ''
also müsste da irgendwo der Fehler stecken
 
Zurück