Bonjour, voila je vais essayer d’expliquer.
en fait j’ai donc mon code php avec une recherche par choix avec un champs a remplir.
si on fait une recherche par code postal:
par exemple dans le chois on choisi code postal et ds le champ on inscrit 7100.
il va me trouver tout les 7100 ds le champ code postal.
après çà j’aimerais pour affiner ma recherche, d’afficher tous les nom par la première lettre sélectionnée ( ex: a, b ou c) si on clic sur la lettre c il devrait m’afficher tout les nom commençant par c de la recherche effectuée au part avant (donc des réponses de la première recherche).
voila le code pour la recherche par choix:
if (isset($_REQUEST['rechercher']))
{
mysql_connect("localhost", "root", "mysql");
mysql_select_db("belgitopia");
$q=$_REQUEST['rechercher'];
switch($_REQUEST['choix'])
{
case "commune": $choix = "commune";
break;
case "cp": $choix = "cp";
break;
case "nom": $choix = "nom";
break;
case "type_activite": $choix = "type_activite";
break;
// On vérifie toutes les possibilités, pour ne pas pouvoir chercher dans des champs non autorisés.
}
if ($q == '')
{
echo '<p id="notifier_recherche">veuillez notifier votre recherche </p>';
}
else
{
$messageparpage = 3;
$retour_total = mysql_query ("SELECT COUNT(*) AS total from recherche WHERE $choix LIKE '%$q%' ") or die (mysql_error()); //va chercher toutes les données qui se trouve la table recherche
$donnees_total = mysql_fetch_assoc($retour_total);
$total = $donnees_total['total'];
$nombredepages = ceil($total / $messageparpage);
if (isset($_REQUEST['page']))
{
$pageactuelle = $_GET['page'];
}
else
{
$pageactuelle = 1;
}
$premiereentree = ($pageactuelle -1) * $messageparpage;
$req = mysql_query("SELECT * FROM recherche WHERE $choix LIKE '%$q%' ORDER BY nom LIMIT " . $premiereentree . ', ' . $messageparpage . ' ') or die (mysql_error());
echo "<br/><br/>";
while ($d = mysql_fetch_assoc($req))
{
?>
<div class="image_nom">
<div class="nom">
<?php echo $d['nom']; ?>
</div> <!--fermeture di nom-->
<div class="image">
<img class="image1_1" src="<?php echo $d['image1']; ?>" alt="image" />
</div> <!--dermeture div image-->
</div> <!--fermeture div image nom-->
<div class="coordonee">
<p>
<b>Adresse:</b>
</p>
<p>
<?php echo $d['adresse'] ?>
<br/>
<?php echo $d['cp'] ?>
<?php echo $d['commune'] ?>
</p>
<p>
<b>Tel:</b> <?php echo $d['tel'] ?>
<b>Fax:</b> <?php echo $d['fax'] ?>
</p>
<p>
<b>E-mail:</b> <?php echo $d['mail'] ?>
</p>
</div> <!--fermeture coordonee-->
<div class="sous_descriptif">
<a title="clic pour plus d'info" href="#" onclick="description1(<?php echo $d['id'];?>); return false;" style="color:#525253; margin-left: 25px;">Plus d'info</a>
</div> <!--fermeture sous_descriptif-->
<div class="deco">
<div id="cadre1<?php echo $d['id'];?>" style="display:none; border:3px solid #fff; padding: 5px;" >
<div class="image2"> <a href="<?php echo $d['image2']; ?>" rel="lightbox"><img class="image2_2" src="<?php echo $d['image2']; ?>" title="clic pour agrandir" alt="image" /></a>
<p><?php echo $d['texte'];?></p>
</div> <!--fermeture div image2-->
<div class="texte_fin"><br/><br/>
<strong>Horaire</strong><br/>
<?php echo $d['horaires'];?><br/><br/>
<div class="image_deco">
<a href="<?php echo $d['image3']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image3']; ?>" title="clic pour agrandir" alt="image" /></a>
<a href="<?php echo $d['image4']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image4']; ?>" title="clic pour agrandir" alt="image" /></a>
<a href="<?php echo $d['image5']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image5']; ?>" title="clic pour agrandir" alt="image" /></a>
<a href="<?php echo $d['image6']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image6']; ?>" title="clic pour agrandir" alt="image" /></a>
<a href="<?php echo $d['image7']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image7']; ?>" title="clic pour agrandir" alt="image" /></a>
<br/>
</div> <!--fermeture div image deco-->
</div> <!--fermeture div texte fin-->
</div> <!--fermeture div cadre1-->
</div> <!--fermeture div deco-->
<?php
}
}
if ($q != '')
{
echo '<p class="page" style="text-align: center;">Page : ';
for($i=1; $i<=$nombredepages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageactuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="recherche.php?rechercher='.$q.'&choix='.$choix.'&page='.$i.'" style="color:#7b7a7a;">'.$i.'</a> ';
}
}
mysql_close();
echo '</p>';
}
else
{}
}
?>
<br/> <br/>
</div> <!--fermeture div contener-->
<div id="menu_recherche">
<div id="titre_recherche">
Recherche par -->
</div> <!--fermeture div titre recherche-->
<div id="recherche_par">
<?php
if(!isset($_REQUEST['rechercher']))
{
echo '<br/>Chosissez les options de votre recherche';
}
?>
<form method="post" action="recherche.php">
<p>
<select name="choix">
<option value="commune">Commune</option>
<option value="cp">Code postal</option>
<option value="nom">Nom</option>
<option value="type_activite">Type d'activité</option>
</select>
<br/>
<input title="inscrivez le nom de votre recherche" type="text" name="rechercher" /> <br/>
<input type="submit" name="envoyer" value="rechercher" />
</p>
</form>
et voici le script que je viens de faire pour la recherche affiner par la premiere lettre du résultat trouvé.
<?php
mysql_connect("localhost", "root", "mysql");
mysql_select_db("belgitopia");
$lettres = array ("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
for ($numero = 0; $numero < 26; $numero++)
{
echo '<p style="display: inline";><a href="test.php?lettre='.$lettres[$numero].'">'.strtoupper($lettres[$numero]).'</a></p>';
if($numero != 26)
echo ' - ';
}
$lettre = (isset($_GET['lettre']) && in_array($_GET['lettre'], $lettres)) ? $_GET['lettre'] : "a";
$query = mysql_query("SELECT * from recherche WHERE left(nom,1) LIKE '%$lettre%'") or die (mysql_error());
while( $req = mysql_fetch_assoc($query))
{
echo '<br/>';
echo $req['nom'];
}
?>
mais je n’arrive pas a l’insérer dans mon code précédant.
voilà j’espère avoir été asse compréhensible.
Gabi