Okay.
Ich habe mir den Quelltext jetzt noch einmal genauer angeschaut...
Ein Problem ist, dass du beim Update in der WHERE Bedingung dich auf eine ID beziehst, die definitiv ohne jeden sinnvollen Inhalt ist.
Erklärung:
Du extrahierst die Post Variablen. Das ist zwar unnötig aber soweit okay.
Die einzige verwertbare Referenz zum editierenden User befindet sich zu diesem Zeitpunkt in
$_POST['name'].
[php:1:6057e1d64b]
$name = $_POST['name'];
$country = $_POST['country'];
$country_name = $_POST['country_name'];
$status = $_POST['status'];
include("../config/mysql_connect.php");
[/php:1:6057e1d64b]
Dann der erste entscheidende Schnitzer:
[php:1:6057e1d64b]
$sql_basic = "SELECT * FROM rage_members";
$query_basic = mysql_query($sql_basic);
$get_basic = mysql_fetch_array($query_basic);
[/php:1:6057e1d64b]
Um die ID des zu bearbeitenden Members herauszubekommen, startest du eine Abfrage. Da diese aber keine WHERE Bedingung beinhaltet, wirst du logischerweise alle Members auslesen.
[php:1:6057e1d64b]
$id = $get_basic['ID'];
[/php:1:6057e1d64b]
Wenn jetzt in
$id etwas steht, dann immer die ID des allerersten Datensatzes.
Eine Berücksichtigung deiner Auswahlkriterien findet nicht statt...
...
Du benutzt den Namen des zu editierenden Users um nach dem Formularabsenden damit die ID des Members herauszubekommen. Diese benutzt du dann beim Update um die WHERE Bedingung zu bestücken.
Mal abgesehen davon, dass nach momentanem Stand der Dinge noch nicht einmal dies funktioniert, ist das doch mächtig umständlich. Oder?
Wäre es nicht viel einfacher, in einem versteckten Feld gleich die
ID im Formular einzubinden?
Dann könntest du diese Codepassage
[php:1:6057e1d64b]
$name = $_POST['name'];
$country = $_POST['country'];
$country_name = $_POST['country_name'];
$status = $_POST['status'];
include("../config/mysql_connect.php");
$sql_basic = "SELECT * FROM rage_members";
$query_basic = mysql_query($sql_basic);
$get_basic = mysql_fetch_array($query_basic);
$id = $get_basic['ID'];
$sql_change = "UPDATE rage_members SET
name = '$name',
country = '$country',
country_name = '$country_name',
status = '$status'
WHERE ID = '$id'";
[/php:1:6057e1d64b]
durch diese ersetzen:
[php:1:6057e1d64b]
$query_change = mysql_query(sprintf("UPDATE rage_members SET name = '%s', country = '%s', country_name = '%s', status = '%s' WHERE ID = %d",
$_POST['name'], $_POST['country'], $_POST['country_name'], $_POST['status'], $_POST['userid']));
[/php:1:6057e1d64b]
10c