Ваш запрос необходимо изменить, как показано ниже.
mysql_query("UPDATE user
SET username = '" .$_POST[nusername] . "' ,
password = ' " .$_POST[npassword] . "',
name = '" . $_POST[nname] . " ',
surname = '" . $_POST[nsurname]',
role = '$_POST[nrole] . "'
WHERE username='" . $_POST[us] . "'");
Также вы открыты для атак с использованием SQL-инъекций. Так что вам лучше использовать функцию mysql_real_escape_string()
.
http://php.net/manual/en/function.mysql-real-escape-string.php
Также я хотел бы предложить вам несколько шагов для преодоления такого рода проблем. Это всего лишь пример.
Шаг 1
Когда вам нужен оператор SQL в вашем PHP-коде. Вам лучше сначала написать его в своем инструменте MySQL и проверить его с примерами значений.
UPDATE subscriber
SET
Subscriber_Name = 'Test' ,
Email = 'test@test.com'
WHERE
Subscriber_ID = '2' ;
Шаг 2:
Если запрос работает нормально, скопируйте его в php. И замените значения поддержкой mysql_real_escape_string()
.
$sql = "UPDATE subscriber
SET
Subscriber_Name = '" . mysql_real_escape_string($_POST['name']) . "' ,
Email = '" . mysql_real_escape_string($_POST['email']) . "'
WHERE
Subscriber_ID = '" . mysql_real_escape_string($_POST['id']) . "' ;"
Шаг 3:
Выполните ваш запрос.
$result = mysql_query($sql);
Шаг 4:
Вы можете увидеть любую, если есть ошибки.
echo mysql_error();
EDIT:
Ответ для вас. Вопрос 2 «Как я могу получить уже заполненные поля в html-файле с правильными значениями, если я выберу определенное имя пользователя?» может быть так.
Сначала вы должны написать оператор выбора и получить любые данные, которые вы хотите. Ex.
$sql = "SELECT user.username, user.name, user.surname , user.role FROM USER WHERE user.username = '" . mysql_real_escape_string($_POST[us]) . "'";
$result = mysql_query($sql, $link) or die(mysql_error());
$row = mysql_fetch_assoc($result);
Затем введите свой HTML-код. Пример:
<form action="edit_user.php" method="post">
<p>Username<input type="text"name="nusername" size="40" value="<?php echo $row['username'];?>"></p>
<p>Password<input type="password"name="npassword" size="40"></p>
<p>Name<input type="text"name="nname" size="40" value="<?php echo $row['name'];?>"></p>
<p>Surname<input type="text"name="nsurname" size="40" value="<?php echo $row['surname'];?>"></p>
<p>Role<input type="text"name="nrole" size="40" value="<?php echo $row['role'];?>"></p>
<p><input type="submit></p>
</form>