Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Romain14 le le 10-07-2011 a 19:57:58

Titre: Chercher données dans BDD séparément dans le même champ
Posté par: Romain14 le le 10-07-2011 a 19:57:58

Bonjours, bonjours

Donc j'explique, je veux demander de rechercher un mot, voir plusieurs dans u champ qui contient très très souvent plusieurs ligne de données, Par exemple si un champ contient :

10, 22, 33, 78 ====> Je cherche le nombre "33" seulement que la base de données ne voix pas dans son champ 10,22,33,78 mais 10 et 22 et 33 et 78. Je veux qui me trouve absolument ce chiffre exacte.

Apparemment ce truc ===> group_concat(Nom_du_champ) permettrai de faire en sorte que la BDD verrai les différentes données qu'il y a grâce à la virgule les séparant. Mais ça n'a pas l'air de marcher.


Voici mon script :


$query_recherche = "select group_concat(friends) FROM compte WHERE friends = '".$friends."' AND id_hash!='".$id_compte."' AND id_hash!='".$friends."' group by 'all'; " ;

Titre: Re:Chercher données dans BDD séparément dans le même champ
Posté par: Pad le le 10-07-2011 a 20:08:45

je pense pas que group_concat permette ça, c'est plutôt au moment de récupérer une donnée qu'on peut la mettre sous forme de liste. Ce que tu peux faire c'est récupérer ta liste 10, 22, 33, 78 (évite les virgules d'ailleurs).

Tu fais ensuite :
$tableau = explode(',',$taliste);

puis tu compare chaque champs du tableau avec la valeur recherchée : for($i=0;$i<count($tableau);$i++) {
if($nombrecherche == $tableau[$i]) echo "champs trouvé";
}

Titre: Re:Chercher données dans BDD séparément dans le même champ
Posté par: Romain14 le le 10-07-2011 a 20:29:04

Enfaite c'est plus compliquer, je fait un réseau sociale

Je demande à ma base de données de chercher qui ont les même potes que moi,

J'ai par exemple en amies monsieur "x"
- monsieur "x" a en amies "y"

===> ma base données va chercher qui est le pote de "x" et ensuite me l'afficher

Script :

$query_recherche = "SELECT * FROM compte WHERE friends LIKE '".$friends."' AND id_hash!='".$id_compte."' AND id_hash!='".$deja_amis."' ORDER BY id DESC";

\\ Chercher dans la base de données tout les champs "friends" ayant le même contenue que moi (mes pote ==> $friends), mais ignorer les réponses étant égale à mon "id_hash" ou a l'id_hash de "mes amies".
PS : Le champ "friends" contient des id_hash du genre ==> 07ad38564a05f7233e289c7777640c6d


Jusqu’à la tout marche trés bien il m'affiche les personne prévu. Cependant....

Admet on que j'ai plusieurs potes (exemple : x, a, et b) la base de données va comprendre cette fois ci de chercher (xab) et non (x, a et b) Il faut séparer les valeurs pour corriger en fin de compte "$friends" et même le résultat final

Donc je ne pense pas que ta réponse va marcher, tkt c'es t de ma faute j'aurrais du mieu m'expliquer


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.