Q:

Почему редактируется только конкретный пользователь?

Здравствуйте 
Пользуюсь функцией и не понимаю, как это всё происходит... помогите разобраться.
Есть база tb_user, где есть много пользователей... и есть поле username, где хранятся имена пользователей.
Дальше код:
<?php
$sql = mysql_query("SELECT * FROM tb_user") or die(mysql_error());
while($res = mysql_fetch_array($sql)){
 $username = $res["username"];
 echo "
  <input type = "text" name = "username" value = "$username" />
  <input type = "submit" name = "save" value = "Сохранить" />
  <hr />
 ";
}

if(isset($_POST["save"])){
 mysql_query("UPDATE tb_user SET username = '" .$_POST["username"] ."'") or die(mysql_error());
}
?>

И фишка в том, что редактируется именно тот пользователь, возле которого я нажал на кнопку, ведь название текстового поля username у всех одинаковое, а редактируется только нужный... вот не понимаю, как тут всё происходит.

A:

Очень просто - выборка всех пользователей генерирует в цикле html для формы - кода формы конечно и ее экшна я пока не вижу - но вырисовывается вполне нормальная картинка.. Сгенерированный код - обвешивает какую то кнопку.. И при редактировании точнее при нажатии происходит POST запрос на страничку, как я понимаю на эту же.. 
Но правда затрагивает всех пользователей - сразу потому что в запросе 
mysql_query("UPDATE tb_user SET username = '" .$_POST["username"] ."'")

нету параметра 
WHERE [condition]

и так во первых нужен еще один параметр  - его в мускуле называют primarykey - этот параметр не уникален. Этот параметр (назовем его Id) служит обычно критерием для работы с данными содержащимися в этой строке..
выводить его нужно еще одним инпутом и в вашем случае кодом $id = $res['id'];
<input type = "text" name = "id" value = "$id" />

а проверять 
if(isset($_POST["save"])){
 mysql_query("UPDATE tb_user SET username = '" .$_POST["username"] ."' WHERE id='".$_POST['id']."'") or die(mysql_error());

}
Тогда редактирование будет присуще одному человеку кому собственно принадлежит кнопка...

