salutatous(tes),
j'ai une table avec trois colonnes : id + login + ville
avant de modifier un login (par un update), je voudrais m'assurer que le nouveau login saisi n'existe pas déjà pour un autre id.
pour cela j'ai essayer ce type de requête mais sans résultat :
CAS 1 OK
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php $sql = 'SELECT count(*) FROM ma_table WHERE login = "'.addslashes($_POST['login']).'" AND id != "'.$id.'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { $message = '<br /><font color="red"><strong>COMPTE MIS A JOUR</strong></font><br /><br />'; } else { $message = '<br /><font color="red"><strong>UN AUTRE COMPTE POSSÈDE CE LOGIN !</strong></font><br /><br />'; } ?>
si je saisi un login existant et que je fait un echo sur $data[0] :
>>> ça m'indique 1, et donc que le compte existe déjà
CAS 2 OK
si je saisi un login qui n'existe pas et que je fait un echo sur $data[0] :
>>> ça m'indique 0, et donc que le compte est mis à jour
CAS 3 PAS OK
si je laisse le login tel quel mais que je modifie juste le champ "ville" et que je fait un echo sur $data[0] :
>>> ça m'indique 1, et donc que le compte existe déjà !!! MAIS c'est là où il y a un problème... car ça veut dire que je ne peux pas modifier d'autres champs liés à ce compte !
j'ai également essayé avec des parenthèses, comme ceci, mais ça va pas non plus :
merci de vos lumières...
Code : Sélectionner tout - Visualiser dans une fenêtre à part $sql = 'SELECT count(*) FROM ma_table WHERE (login = "'.addslashes($_POST['login']).'") AND (id != "'.$id.'")';
Partager