Comparaison variable avec tableau MYSQL

Résolu/Fermé
Tsointsoin - 25 août 2009 à 14:15
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 26 août 2009 à 11:08
Bonjour,

après avoir vainement fouillé dans plusieurs forums, je n'ai trouvé solution à mon problème...

Je suis en train de créer un site avec des news en php et j'utilise une BDD mysql.

Je souhaiterai éviter qu'un utilisateur ne mette une news comportant le même titre qu'une autre. Mais je ne vois pas trop comment faire.

J'ai commencé par faire une requête pour récupérer les titres

$titres = mysql_query('SELECT titre FROM news ');
$tab = mysql_fetch_array($titres);
$double = false;

mais à ce point, je ne sais pas parcourir mon tableau et comparer à chaque fois avec ma variable $nouveau_titre pour assigner $double = true dans le cas où une news comporte déjà le titre.

J'ai essayé les boules for et while mais ça ne fonctionne pas...

Que dois-je faire?

Merci pour votre aide!

Tsointsoin
A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
25 août 2009 à 14:24
$titres = mysql_query('SELECT titre FROM news ');
$tab = mysql_fetch_array($titres);


en faisant ainsi tu ne sort qu'un seul résultat , pour parcourir ttes les réponse il faut faire une boucle while:

$titres = mysql_query('SELECT titre FROM news ');
while($tab = mysql_fetch_array($titres)){

if($tab['titre']==$nouveau_titre) $double=true;

} 


sinon une autre solution directement dans ta requette

$titre_existant = mysql_query("SELECT titre FROM news WHERE titre = '".$nouveau_titre."' ");

//on regarde si on en a trouvé:
if(mysql_num_rows($titre_existant)>0) $double=true;
1
Merci Alain_42!

La solution avec la requête est parfaite!

Merci pour ton aide.
0
ehman Messages postés 6 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 18 novembre 2009
25 août 2009 à 19:39
plus simple, tu définis ton champs titre avec le paramètre UNIQUE
du coup inutile de faire une requête pour ne pas dupliquer un titre.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 août 2009 à 11:08
oui mais avec le paramètre UNIQUE ça va faire une erreur mysql si doublon
ce qui veut c'est informer l'utilisateur que c'est un doublon
0