Je t'assures que ce que tu veux faire ici dans ce code est absolument équivalent à ma requète (avec une clé primaire bien définie).
Ensuite, tu fais de très grosses erreurs.
$test = mysql_query("SELECT id FROM fenetre WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 300 '.mysql_error());
if($test == "")
{
Comme je t'ai déjà dit, mysql_query() retourne un identifiant de resource pour les requètes SELECT, ca n'a
absolument aucun sens de comparer cette valeur de retour à une chaine vide "". Cet identifiant, il sert juste pour les autres fonctions de la bibliothèque mysql ( mysql_fetch_array(), mysql_free_result() ).
Pour savoir si on a eu un résultat, on utilise mysql_fetch_array() qui retourne un tableau s'il reste un enregistrement à retourner, et false sinon.
mysql_query("UPDATE fenetre SET id = '$id' AND name = '$now' AND etat = '$eow' WHERE name = '$now' AND id = '$id'")
C'est trois quarts de la requète sont inutiles tu cherches les enregistrments qui ont l'id $id et le nom $now, et tu fixes id à $id et nom à $now, donc tu ne changes absolument rien ici. Le seul truc qui est utile dans la clause SET, c'est de fixer etat à $eow.
Enfin, normalement tu devrais avoir eu une erreur, parce que dans les clauses SET, on utilise des virgules et non des AND.
Bref, j'essaye de t'aider, je te donne des solutions, mais si tu refuses mon aide, tu peux le dire tout de suite, j'ai plein d'autres trucs intéressants à faire. Bref, pour régler ton problème avec mon code parce que tu n'a pas été précis, si tu ne veux pas que mon code te crée un nouvel enregistrement à chaque fois, il faut que tu crées une clé primaire sur id et nom (je pense que phpmyadmin sait faire ca, si tu n'y arrives pas, reviens me voir, j'irais chercher la requiète.