Bonjour,
J'ai créé un table Cartes_postales qui contient pour chaques cartes_postales le numéro de la carte, le nom de commune, la date, le format...+ 3 thèmes (pour éviter d'avoir à construire une table Theme à part) :Theme1, Theme2, Theme3 qui peuvent être complétés ou non (selon qu'il y ai ou non plusieurs thèmes à identifier sur la même carte).
Ca donne du genre
Carte_postale1:Commune A : Theme1: pont
Theme2: femme
Theme3: null
Carte postale2:CommuneA : Theme1:gare
Theme2:pont
theme3: femme
Donc pour la commune A, le même mot 'pont' peut se retrouver en theme1 puis en theme2...ce qui me crée des problèmes de doublons
Le formulaire de recherche se fait d'abord par nom de commune ( on sélectionne toutes cartes pour une commune), dans la réponse en php, je séléctionne les thèmes identifiés sur les cartes de la commune choisie.
Ces thèmes apparaissent à l'intérieur du menu déroulant d'un nouveau formulaire dans la reponse.php (pour servir à une nouvelle recherche affinée)
Le problème est qu'à l'affichage même en utilisant distinct Theme1, Theme2 ect...ou Group by j'ai des doublons parceque par exemple le mot 'pont' n'apparait qu'une fois en theme1 et qu'une fois en thème 2 sur les cartes du coup le menu déroulant récupère plusieur fois le même mot.
J'ai entendu dire que la fonction array-unique pouvait éviter les doublons mais je débute et n'ai pas tout compris.
Si quelqu'un peut me dire comment adapter mon script pour éviter ces répétitions,à moins qu'il n'y ai pas d'autres moyens que de créer une nouvelle table themes à part?
Merci d'avance
Voilà mon script:
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 <?php /* Excution de la requte */ $choix = $_POST ['communes']; if ($choix !="") $finrequete = " Nom_commune LIKE '%$choix%'"; $sql="SELECT DISTINCT Theme1, Theme2, Theme3, Theme4, Theme5 FROM Cartes_postales WHERE $finrequete ORDER BY Theme1,Theme2, Theme3, Theme4, Theme5 "; $resultat=mysql_query($sql,$bd); if ($maligne=mysql_fetch_array($resultat)){ echo "<H4><a href=formulaire_cartes_postales.html>Nouvelle recherche</a></H4>"; echo ' <div id=divprecis1> <H3> Affiner le résultat par thème:</H3> <H3><form method="post" action="commune_theme.php"></H3> <select name="communes" id="communes"> <option value="'.$choix.'">'.$choix.'</option></select> <select name="themes" id="themes">'; do{ echo '<option value="'.$maligne['Theme1'].'">'.$maligne['Theme1'].'</option> <option value="'.$maligne['Theme2'].'">'.$maligne['Theme2'].'</option> <option value="'.$maligne['Theme3'].'">'.$maligne['Theme3'].'</option>'; }while ($maligne=mysql_fetch_array($resultat)); } echo '</select>'; echo' <input name="valider" type="submit" id="submit" value="valider"> </form>'; echo '</div>'; ?>
Partager