1. Rien à voir, mais tu devrais revoir ton code HTML, il est un peu...différent
- c'est quoi tous ces
<blockquote> ?
- evite de mettre du style directement dans les balises (le
align=), utilise plutôt le CSS.
- profite-en pour déporter le CSS dans une feuille de style.
2. Pour construire ta "requête multiple", au lieu de faire ta boucle, pourquoi tu n'utilises pas plutôt un
implode() ?
$mots = explode(" ", $recherche); //séparation des mots
$valeur_requete = implode( " ".$and_ou_or." ", $mots); //regroupement des mots
3. (pour ton problème de départ)
En fait, tu affiches les informations de base de tes communes et tu voudrais qu'un clic sur "details" (ou autre, hein) te donne les informations complémentaires, c'est ça ?
Solution 1 :
Une page detail.php qui va récupérer et afficher les informations de la commune, et un lien vers
detail.php?insee=...
Dans ton code actuel (j'utiliserais plutôt une
liste de définition, mais c'est une question de goûts) :
echo '<dl>';
echo '<dt>Nom de Commune :</dt><dd>' . $resultats['Commune'] .'</dd>';
echo '<dt>Code INSEE :</dt><dd>' . $resultats['INSEE'] .'</dd>';
echo '<dt>Code Postal :</dt><dd>' . $resultats['CP'] . '</dd> ';
echo '<dt><a href="detail.php?insee='.$resultats['INSEE'].'" title="details de la commune">Details</a></dt>';
echo '</dl>';
Et dans la page
detail.php (exemple très basique à améliorer/sécuriser) :
<?php
mysql_connect("localhost", "root", ""); //connexion à la BDD
mysql_select_db("test");
$insee = $_GET['insee'];
$requete = mysql_query("SELECT * FROM cp_insee WHERE insee = $insee");
$resultats = mysql_fetch_array ($requete);
print_r($resultats);
Solution 2 :
Cacher les détails, et les afficher via du JS.
Exemple utilisant la bibliothèque jQuery (parce que j'en avais un sous le coude, et la flemme d'en refaire un

) :
- Partie PHP :
echo '<dl>';
echo '<dt>Nom de Commune :</dt><dd>' . $resultats['Commune'] .'</dd>';
echo '<dt>Code INSEE :</dt><dd>' . $resultats['INSEE'] .'</dd>';
echo '<dt>Code Postal :</dt><dd>' . $resultats['CP'] . '</dd> ';
echo '<dt><a href="#insee='.$resultats['INSEE'].'" title="details de la commune">Details</a></dt>';
echo '<dd id="insee'.$resultats['INSEE'].'" class="details">'.$resultats[LesChampsQueTuVeuxAfficherAvecUneEventuelleMisEnForme].'</dd>';
echo '</dl>';
Partie CSS :
.details {display:none;}
Il faudra encore rajouter à ta page les scripts JS qui vont bien.
Ici :
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('a').click(function(){
$('#cp59000').toggle();
});
});
</script>
[Edit] Après, il faudrait plus d'informations pour choisir la solution la plus adaptée.
En gros, la première (une page détail) est plus adaptée s'il y a beaucoup d'informations et/ou s'i tu comptes fournir un autre moyen d'accéder aux détails des communes (auquel cas ta page détail sera réutilisable).
La deuxième est mieux si l'utilisateur est amené à consulter les détails de plusieurs communes à la suite...
1. Rien à voir, mais tu devrais revoir ton code HTML, il est un peu...différent :mrgreen:
- c'est quoi tous ces [b]<blockquote>[/b] ?
- evite de mettre du style directement dans les balises (le [b]align=[/b]), utilise plutôt le CSS.
- profite-en pour déporter le CSS dans une feuille de style.
2. Pour construire ta "requête multiple", au lieu de faire ta boucle, pourquoi tu n'utilises pas plutôt un [b]implode()[/b] ?
[php]$mots = explode(" ", $recherche); //séparation des mots
$valeur_requete = implode( " ".$and_ou_or." ", $mots); //regroupement des mots
[/php]
3. (pour ton problème de départ)
En fait, tu affiches les informations de base de tes communes et tu voudrais qu'un clic sur "details" (ou autre, hein) te donne les informations complémentaires, c'est ça ?
[u]Solution 1 :[/u]
Une page detail.php qui va récupérer et afficher les informations de la commune, et un lien vers [b]detail.php?insee=...[/b]
Dans ton code actuel (j'utiliserais plutôt une [url=http://www.pompage.net/traduction/listesdefinitions]liste de définition[/url], mais c'est une question de goûts) :
[php]echo '<dl>';
echo '<dt>Nom de Commune :</dt><dd>' . $resultats['Commune'] .'</dd>';
echo '<dt>Code INSEE :</dt><dd>' . $resultats['INSEE'] .'</dd>';
echo '<dt>Code Postal :</dt><dd>' . $resultats['CP'] . '</dd> ';
echo '<dt><a href="detail.php?insee='.$resultats['INSEE'].'" title="details de la commune">Details</a></dt>';
echo '</dl>';
[/php]
Et dans la page [b]detail.php[/b] (exemple très basique à améliorer/sécuriser) :
[php]<?php
mysql_connect("localhost", "root", ""); //connexion à la BDD
mysql_select_db("test");
$insee = $_GET['insee'];
$requete = mysql_query("SELECT * FROM cp_insee WHERE insee = $insee");
$resultats = mysql_fetch_array ($requete);
print_r($resultats);
[/php]
[u]Solution 2 :[/u]
Cacher les détails, et les afficher via du JS.
Exemple utilisant la bibliothèque jQuery (parce que j'en avais un sous le coude, et la flemme d'en refaire un :oops: ) :
- Partie PHP :
[php]echo '<dl>';
echo '<dt>Nom de Commune :</dt><dd>' . $resultats['Commune'] .'</dd>';
echo '<dt>Code INSEE :</dt><dd>' . $resultats['INSEE'] .'</dd>';
echo '<dt>Code Postal :</dt><dd>' . $resultats['CP'] . '</dd> ';
echo '<dt><a href="#insee='.$resultats['INSEE'].'" title="details de la commune">Details</a></dt>';
echo '<dd id="insee'.$resultats['INSEE'].'" class="details">'.$resultats[LesChampsQueTuVeuxAfficherAvecUneEventuelleMisEnForme].'</dd>';
echo '</dl>';[/php]
Partie CSS : [b].details {display:none;}[/b]
Il faudra encore rajouter à ta page les scripts JS qui vont bien.
Ici :
[html]<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('a').click(function(){
$('#cp59000').toggle();
});
});
</script>[/html]
[Edit] Après, il faudrait plus d'informations pour choisir la solution la plus adaptée.
En gros, la première (une page détail) est plus adaptée s'il y a beaucoup d'informations et/ou s'i tu comptes fournir un autre moyen d'accéder aux détails des communes (auquel cas ta page détail sera réutilisable).
La deuxième est mieux si l'utilisateur est amené à consulter les détails de plusieurs communes à la suite...