logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
34 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 394 917

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» recherche alphabétique

recherche alphabétique#6593

4Contributeur(s)
camydeveloppeurTribal-DolphinGiamDoc
3 Modérateur(s)
developpeurjpbJireck
camy camyicon_post
Salut !! :-?
Je souhaite faire un moteur de recherche par les lettres de l'alphabet.
Qd l'utilisateur clique sur 'A', une nouvelle page affiche toutes les coordonnées des noms commencant par A.

Voici mon code :
<HTML>
<HEAD>
<TITLE>Recherche alphabetique</TITLE>
</HEAD>
<BODY>
<form method="post" action="betique.php3">
<CENTER>
<b><a href="http://localhost/betique.php3" name"lettre"> A </a></b>
<b>-</b>
<b><a href="http://localhost/betique.php3" name"lettre"> B </a></b>
<b>-</b>
......
<b><a href="http://localhost/betique.php3" name"lettre"> Y </a></b>
<b>-</b>
<b><a href="http://localhost/betique.php3" name"lettre"> Z </a></b>
</CENTER>
</form>
</BODY>


<?php
$lettre = $_POST['lettre'];

$sql = "select * from coordonnees where nom like '$lettre%' ";
$db=mysql_connect("localhost", "root", "");
mysql_select_db('assos1',$db) ;
$result = mysql_db_query('assos1',$sql);

if ($result) {
if (mysql_num_rows($result) == 0) {
// Si il n'y a pas de résultats
echo "<center><b>Pas de
Résultat</b></center><br>"; } else {
echo "<center><b>Résultat(s)</b></center><br>";
while($row = mysql_fetch_array($result)) {
echo $row['nom'];
echo"
" ;
echo $row['adresse'];
echo"
" ;
echo $row['tel'];
echo"

" ;
}
mysql_free_result($result);
}
}
?>
</HTML>

[ Message édité par : Tribal-Dolphin : 11-07-2003 10:40 ]
developpeur developpeuricon_post
regarde la requète de memberlist.php dans NPDS elle fait exactement ce que tu souhaite
camy camyicon_post
C trop compliqué !!!:paf
je dois faire un moteur de recherche alphabetique très simple !!
Et en plus, je débute en php et html(c pour mon stage que je dois faire ça).
je voudrait juste savoir comment récupérer la lettre cliquée par l'utilisateur pour la rechercher dans ma base de donnée.

Je suis sur que c qqchose de très simple mais que je ne connaît pas.
Merci
Tribal-Dolphin Tribal-Dolphinicon_post
faire un lien sur chaque lettre => <a href=suite.php?ltr=A>A</a> | <a href=suite.php?ltr=B>B</a>

Page suite.php :

Supprime : $lettre = $_POST['lettre'];
Modifie : $sql = "select * from coordonnees where nom like '$ltr%' ";

Et ensuite, ça roule !!
developpeur developpeuricon_post
passage de paramètre par l'url de ton lien : si tu click sur A => a href=recherche.php?lettre=A

Dans ton script de recherche : tu utilise le contenant $lettre
Tribal-Dolphin Tribal-Dolphinicon_post
Si c'est pas de la synchronisation parfaite ça !! :-D
developpeur developpeuricon_post
yo tribal / dans une autre vie on sera membre d'un cluster toi et moi :-D
camy camyicon_post
Merci mais ca ne marche pas, ca me donne tout les noms et pas ceux commençant par la lettre cliquée.
Je ne comprends pas !!!!
Voici mon nouveau code :

<form method="post" action="betique.php3">
<?php
echo "<center>[ ";
echo "<a href=betique.php3?ltr=A>A</a>";
echo "&nbsp;-&nbsp;\n";
echo "<a href=betique.php3?ltr=B>B</a>";
echo "&nbsp;-&nbsp;\n";
.......
echo "<a href=betique.php3?ltr=Y>Y</a>";
echo "&nbsp;-&nbsp;\n";
echo "<a href=betique.php3?ltr=Z>Z</a>";
echo " ]\n</center>\n<br>\n";
?>
</form>

betique.php3 :

<?php
$sql = "select * from coordonnees where nom like '$ltr%' ";

$db=mysql_connect("localhost", "root", "");
mysql_select_db('assos1',$db) ;
$result = mysql_db_query('assos1',$sql);

if ($result) {
$nb=mysql_num_rows($result) ;
if ($nb == 0) {
echo "<center><b>Pas de Résultat</b></center><br>";
} else {
echo "<center><b>Résultat(s)</b></center><br>";
.........affiche le résulat de la recherche................
}
mysql_free_result($result);
}
}
?>
Tribal-Dolphin Tribal-Dolphinicon_post
Dans ce cas, le prob vient du like '$ltr%' ";
Attend s10 minutes, je te poste le correct
Tribal-Dolphin Tribal-Dolphinicon_post
Après Verif, la syntaxe est bonne !!
Essaye ceci mais sans convictions :
$sql = "SELECT * FROM coordonnees WHERE nom LIKE '".$ltr."%'";
camy camyicon_post
Maintenant je ne trouve aucun résultat !!!!!!
camy camyicon_post
Si mes noms commencent par une majuscule est-ce que ça peut des erreures?
Tribal-Dolphin Tribal-Dolphinicon_post
ça peut, en effet !
Par contre, pour l'autre problème, je vois plus !
camy camyicon_post
Ce ne sont pas les noms rentrés en majuscule qui font bugger mon programme.
Soit g toute la liste, soit je n'est rien.
C desesperant :paf :paf :paf :paf :paf
Tribal-Dolphin Tribal-Dolphinicon_post
Essaye un like avec un nom complet puis enleve les lettres les unes après les autres.
Et vois à partir d'ou ça plante.
camy camyicon_post
Ca ne plante pas :
g, par exemple, le nom "Basket".
like'b%' like'basket%'
tout s'affiche comme il faut.
Le problème c avec la variable $ltr.
:paf :-| :paf :-| :paf :paf :-| :paf
Tribal-Dolphin Tribal-Dolphinicon_post
Alors ça, ça c pas normal !!!!
fait un echo $sql."
"; juste après $sql="xxxxxx";
et poste ici la ligne que ça t'afiche.
camy camyicon_post
Voila ce que ça affiche

select * from coordonnees where nom like '%'ERREUR xxxxxx You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'xxxxxx' at line 1
Tribal-Dolphin Tribal-Dolphinicon_post
y'as bel est bien un plantage, qui n'est pas normal d'ailleurs !!
$ltr est une variable de fromulaire et il t'affiche une erreur de requette SQL :-?

T'aurais moyen de me m@il tes fichier et ta table SQL ?
camy camyicon_post
Je viens de te les envoyer.
Fais ce que tu peux !!!
Camy