Filtrer des données déjà existantes dans une base de donnée

Par BlackDev, il y a 15 ans


Bonjour

J'ai une base de donnée avec une table qui contient dans un champ plusieurs fois les mêmes noms

Donc en faisant une requête toute simple du type :

$sql = "SELECT * FROM addmessage";
$req = mysql_query($sql);
while($voir = mysql_fetch_array($req))
{
    echo $voir'suspect'];
}

Le problème de ce code, c'est qu'il m'affiche toutes les entrées et plusieurs "suspect" se répèterons plusieurs fois sachant qu'ils sont plusieurs fois dans le champ.

Existe t-il une méthode pour filtrer ça qu'il n'affiche qu'une seul fois chaque donnée même si elles sont plusieurs fois dans la table ?

Merci de vos réponse

PS : Super site, j'ai appris énormément de choses dessus !

8 réponses

Guilhem, il y a 15 ans

Si tu veux afficher tes donnée, une par une, tu dois faire ça:

$id=$_GET"id"]
$sql = "SELECT * FROM addmessage WHERE id='$id'";  
$req = mysql_query($sql);  
($voir = mysql_fetch_array($req));
   echo $voir'suspect'];

Dans ton URL ça donne: "tapage.php?id=ID"

BlackDev, il y a 15 ans

Merci de ta réponse, en faite mon problème est pas la, dans ma table il y à plusieurs suspects et certains qui ce répètent plusieurs fois, le problème c'est que je voudrait lister les suspects entré dans la table sans qu'il ne se répètent plusieurs fois.

Je ne sais vraiment pas comment faire et merci de votre aide.

Guilhem, il y a 15 ans

Mmm, je vois pas trop désolé..

Grafikart, il y a 15 ans

Teste de faire un COUNT et de grouper par contenu, avec HAVING COUNT(id) > 1 par exemple. Je sais pas trop si j'ai été clair XD

Rafayil, il y a 15 ans

Salut,
tu testes avec DISTINCT :

$sql = "SELECT DISTINCT * FROM addmessage";
 $req = mysql_query($sql);
 while($voir = mysql_fetch_array($req))
 { echo $voir'suspect']; }

Bonne chance

BlackDev, il y a 15 ans

Merci pour vos réponses

J'ai essayer DISTINCT mais ça fonctionne pas, et sinon j'ai rien compris Grafikart ^^

Rafayil, il y a 15 ans

Alors c'est bizarre, voir ca peut être utile: Texte du lien

BlackDev, il y a 15 ans

Merci beaucoup j'ai trouvé, l'erreur est qu'il fallait remplacer le * par le champ que je veut distinguer.

Ce qui donne :

$sql = "SELECT DISTINCT suspect FROM addmessage";

Merci encore, à bientôt