Création d'un lexique

Résolu/Fermé
Ifryona - 10 mars 2009 à 14:16
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 - 11 mars 2009 à 12:19
Bonjour,

J'ai une base de donnée contenant plusieurs nom de recettes. Je souhaite qu'elles soient accessibles via un moteur de recherche, mais également un lexique. Pour le moteur de recherche pas de soucis, par contre pour le lexique j'ai plus de mal.

J'ai essayé de trouver des tutoriels sur le net mais sans succès. Qulqu'un pourrait-il m'aider dans cette réalisation, ou me conseiller un tuto ?

Merci par avance,
Ifryona.
A voir également:

8 réponses

Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
10 mars 2009 à 14:25
Je ne sais pas quel langage de programmation tu utilise.

En fait tu dois créer une page avec les lettres A,B,C,...Z qui sont des liens.

Quand on clique sur uen lettre il faut que tu fasse une requête SQL sur ta base pour rechercher les noms de recette qui commencent par la lettre sur laquelle on a cliqué.
0
Merci Sandrine pour ta réponse.

J'utilise PHP/MySQL et XHTML.

J'ai commencé à préparé une page avec une liste avec les lettres de l'alphabet en tant que lien, mais une fois que j'ai cliqué dessus, où vais- ? Est-ce que je dois créer 26 pages et sur chacune d'elle faire des requêtes ? Il doit surement y avoir une méthode beaucoup mieux, je n'en doute pas, mais j'avoue que je coince !

Merci par avance de votre réponse,
Ifryona.
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
10 mars 2009 à 16:16
Sinon tu connais les ancres HTML ??

Ce sont des liens qui renvoient sur la même page, et qui descendent sur la page à un point précis. Par exemple, Wikipedia les utilise : quand tu clique sur un lien du sommaire, ça te descends la page jusqu'au titre correspondant (cf comme exemple : https://fr.wikipedia.org/wiki/Hypertext_Markup_Language

Ca pourrait être sympa de faire comme ça.

---

Autre solution :
Comme je t'ai dit précédemment quand tu clique sur la lettre A par exemple, tu génère une requête SQL qui cherchera dans ta base les noms de recette qui commencent par A.
0
Oui je connais le système des ancres mais le soucis est que je vais avoir énormément de fiches à lister, c'est pourquoi je pense qu'il est plus simple de passer par une bdd, avec une requête.

Le soucis c'est que je ne suis pas experte en la matière et je ne trouve pas de tutoriel sur le net (ça doit pourtant bien se trouver !!! je dois surement pas faire la bonne recherche!)
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
10 mars 2009 à 16:48
Est-ce que tu sais faire les requêtes en PHP, et l'envoi de données via un formulaire ?
0
Oui un peu.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
10 mars 2009 à 17:04
Alors tu envoi la lettre sélectionnée en POST ou GET (comme tu veux), et tu crée ta requete pour l'affichage
Exemple :

SELECT nom_recette
FROM RECETTE
WHERE nom_recette LIKE "$_POST['lettre']%"

==> Ca recherche les noms de recette dont le nom commence par la lettre qui a été envoyée grâce au formulaire.

le "%" signifie qu'il peut y avoir n'importe quelle lettre après.
0
Merci beaucoup Sandrine !

C'est marrant, car c'est exactement ce que j'ai fait ! A la simple différence que j'ai mis un Get ^^

Par contre maintenant ma requête me ressort un "resource #8". Sais-tu ce que ça veut dire ?
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
11 mars 2009 à 09:04
Montre moi le code d'exécution de ta requête que je regarde si je peux t'aider.
0
Bonjour Sandriine,

Voilà ce que j'ai mis dans ma page php :

if (isset($_GET['lettre'])){
$lettre=$_GET['lettre'];
}

$sql = "SELECT fic_nom_recette
FROM fiches_recettes
WHERE fic_nom_recetteLIKE '".$_GET['lettre']."%'";

echo $sql."<br /><br />";

$result = mysql_fetch_array ($sql);

print_r($result);

Maintenant, lorsque je clique par exemple sur A, ça me sort ceci :
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in .........."
0
Ifryona > Ifryona
11 mars 2009 à 11:06
En bidouillant de mon côté j'ai corrigé quelques unes de mes erreurs ! Ma requête est celle-ci maintenant :

if (isset($_GET['lettre'])){
$lettre=$_GET['lettre'];
}

$sql = mysql_query ("SELECT fic_nom_recette
FROM fiches_recettes
WHERE fic_nom_recetteLIKE '".$_GET['lettre']."%'");

//echo $sql."<br /><br />";
while ($result = mysql_fetch_array ($sql, MYSQL_ASSOC)) {
print_r($result);
}


Il en ressort ceci :

Array ( [fic_nom_recette] => Abricots sur tarte)


Il semblerait que je sois sur la bonne voie ^^
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
11 mars 2009 à 11:33
Alors dans ta requête déjà il doit y avoir un espace avant et après LIKE.

Essaye ça :
$req="SELECT fic_nom_recette 
FROM fiches_recettes 
WHERE fic_nom_recette LIKE ".$_GET['lettre']."%";

$sql=mysql_query($sql);

$result=mysql_fetch_assoc($sql);

while($result)
{
   echo $result['fic_nom_recette']."<br />";
}


Si ça ne marche pas, essaye de etster d'abord ta requête dans MySQL, et de voir si elle marche.
0
Je te remercie Sandrine pour ton aide !

J'ai continué à chercher de mon côté et j'ai enfin réussi !

Peut-être que ça interessera d'autres personnes, donc voilà le code que j'ai utilisé :

<?php


if (isset($_GET['lettre'])){
$lettre=$_GET['lettre'];
}

$sql = mysql_query ("SELECT fic_nom_recette, fic_lien
FROM fiches_recettes
WHERE fic_nom_recette LIKE '".$_GET['lettre']."%'") or die ("Erreur requete recettes : ".mysql_error());


while ($fiches_recettes=mysql_fetch_array($sql,MYSQL_ASSOC)){
?>
<a href="../upload/fiches-recettes/<?php echo $fiches_recettes['fic_lien']; ?>">
<?php echo $fiches_recettes['fic_nom_produit'] ; ?></a><br />
<?php
}//fin du while

?>


Merci encore d'avoir pris du temps pour m'aider !
Ifryona.
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
11 mars 2009 à 12:19
Super :)

Bon courage pour la suite,

a+

ps : N'oublie pas de mettre le statut "Résolu" à ton post si ce n'est pas déjà fait.
0