Bonjour,
mon problème est le suivant:
j'ai une requête qui doit me renvoyer les voyages en fonctions d'informations envoyé (via la commande like '%%').
Quand je reçois mes informations, elles sont affichées mais en plusieurs fois. A savoir dans un voyage, j'ai des étapes et si il y a le même mot dans 3 étapes, il me sortiras trois fois le voyage.
Comment faire pour qu'il puisse m'extraire simplement une fois le voyage voulut même si il y a plusieurs étapes dans ce voyage qui corresponde à ma recherche?
Voici mon code:
Merci pour votre aide.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 $multi_array = array() ; $sql = "SELECT groupes_voyages.id_voyage_serveur, voyage.id_voyage_serveur,"; $sql = $sql." voyage.nom_voyage,voyage.detail_voyage, 0 as nbre_jaime, "; $sql = $sql." etapes.adresse , etapes.hebergement , etapes.particularite_etape, "; $sql = $sql." etapes.a_voir, etapes.a_faire , etapes.remarque, voyage.id_parametres, parametres.pseudo "; $sql = $sql." FROM groupes_voyages, voyage, etapes, parametres"; $sql = $sql." WHERE groupes_voyages.id_voyage_serveur = voyage.id_voyage_serveur "; $sql = $sql." AND groupes_voyages.id_voyage_serveur = etapes.id_voyage_serveur "; $sql = $sql." AND groupes_voyages.id_groupes = 36 "; $sql = $sql." AND voyage.id_parametres = parametres.id_parametres"; $sql = $sql." AND ( voyage.nom_voyage LIKE '%$voyage_search%' "; $sql = $sql." OR voyage.detail_voyage LIKE '%$voyage_search%' "; $sql = $sql." OR etapes.adresse LIKE '%$voyage_search%' "; $sql = $sql." OR etapes.hebergement LIKE '%$voyage_search%' "; $sql = $sql." OR etapes.particularite_etape LIKE '%$voyage_search%' "; $sql = $sql." OR etapes.a_voir LIKE '%$voyage_search%' "; $sql = $sql." OR etapes.a_faire LIKE '%$voyage_search%' "; $sql = $sql." OR etapes.remarque LIKE '%$voyage_search%' "; $sql = $sql." OR parametres.pseudo LIKE '%$voyage_search%')"; //$sql = $sql." AND voyage.id_liste_type_voyage = 2"; $sql = $sql." ORDER BY groupes_voyages.id_voyage_serveur DESC " ; $requete = mysql_query($sql) ; if (!$requete) { $message = 'Requête invalide : ' . mysql_error() . "\n"; $message .= 'Requête complète : ' . $sql; } $i = 0 ; while ($row = mysql_fetch_assoc($requete)) { $multi_array[$i] = $row ; // echo $multi_array[$i]['id_voyage_serveur'].PHP_EOL; $sql2 = "SELECT id_voyage_serveur, COUNT(*) AS nbre_jaime"; $sql2 = $sql2." FROM jaime"; $sql2 = $sql2." WHERE id_voyage_serveur=".$multi_array[$i]['id_voyage_serveur']; $sql2 = $sql2." GROUP BY id_voyage_serveur "; // echo $sql2.PHP_EOL; $requete2 = mysql_query($sql2) ; if (!$requete2) { echo 'Impossible d\'exécuter la requête : ' . mysql_error(); //exit; } $row1 = mysql_fetch_row($requete2); if ($row1 == "") $multi_array[$i]['nbre_jaime']=0; else $multi_array[$i]['nbre_jaime']=$row1[1]; // $i++ ; } return $multi_array ;
Loïc
Partager