Recherche par alphabet

Bonjour à toutes et tous.

Voila, j’aimerais faire une recherche par alphabet.
je m’explique:
donc je devrais avoir 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

j’aimerais donc que quand je clic sur la lettre par ex: B, ben tout les nom commençant par b s’affiche.
mais comment donné le lien aux lettres de l’alphabet?

pouvez vous m’explique? ou le donné peut être l’adresse d’un tuto svp?

Je ne comprends pas là? Tu veux faire ça dans quel langage?

PHP? Ajoute ?letter=X (où X est ta lettre) sur tes liens, et gère les avec $_GET[‘letter’]…

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

Ben tu as presque tout :slight_smile:

En haut de la page :

$lettre = (isset($_GET['lettre']) && in_array($_GET['lettre'], $lettres)) ? $_GET['lettre'] : "a";

Puis ensuite, il faut modifier toutes les requetes que tu avez dans le premier script.
Par exemple

$req = mysql_query("SELECT * FROM recherche WHERE $choix LIKE '%$q%' ORDER BY nom LIMIT " . $premiereentree . ', ' . $messageparpage . ' ') or die (mysql_error());

devient :

$req = mysql_query("SELECT * FROM recherche WHERE $choix LIKE '%$q%' AND left(nom,1) LIKE '%$lettre%'" ORDER BY nom LIMIT " . $premiereentree . ', ' . $messageparpage . ' ') or die (mysql_error());