IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Moteur de recherche ultra simple ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut [SQL] Moteur de recherche ultra simple ?
    Bonsoir,

    Ma question est en fait 2 questions:

    1° Comment afficher une liste de films en faisant passer la 1ère lettre du film ? Est-ce possible par SQL svp ?

    2° Est-ce possible de faire un mini moteur de recherche simple à mettre en place avec des capacités limitées ça va sans dire

    J'aurais aimé proposé un début de code ou de SQL mais j'avou ne jamais avoir fais ça donc je ne sais pas du tout comment commencer...

    Quelqu'un peut m'aider svp ?

    Merci d'avance...

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Alors tu peux faire comme ceci si tu as la première lettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT titre, id FROM table_film WHERE titre LIKE talettre%
    C'est purement du sql. et le LIKE talettre% recherche tous les enregistrements commencant par talettre

  3. #3
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Jiraiya42
    1° Comment afficher une liste de films en faisant passer la 1ère lettre du film ? Est-ce possible par SQL svp ?
    La requête suivante te sortira les films dont la première lettre est 'M' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from `films` WHERE `titre` LIKE "M%"
    Ca devrait t'aider à démarrer ? (c'est insensible à la casse)

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Et je rajoute ceci : La clause WHERE

    Qui te donnera des informations supplémentaires sur les possibilités de recherche

  5. #5
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut
    Merci pour les réponses dsl pour le retard dans la réponse mais je me suis apperçu d'un autre petit soucis en me heurtant au problème de moteur de recherche.

    J'ai une base qui devient conséquente et jusqu'à présent je créais des fichiers "films.php" où j'affichais 10 résultats "films2.php" encore 10 "films3.php"... ma base grossi donc ça devient ingérable non ? Il me semblait avoir lu quelque part que l'on pouvait gérer ça autrement, me trompe-je svp ?

  6. #6
    Membre éclairé Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Par défaut
    Le plus simple c'est de faire un seul fichier film.php et de faire un système de pages.
    Par exemple dans ta page film.php tu fais un lien sur le mot "suivant" qui pointe vers ta page film.php. Tu passe en paramètre un numéro de page (par exemple le numéro de la page courante que tu stockes dans une variable) incrémenté de 1 et tu mets à jour ta variable page courante. Ensuite tu créées une instruction sql qui tienne compte de ta page en cours (exemple: si page = 2 alors affiche les enregistrement ($page_courante*10) à ($page_courante*10)+10)
    De même avec d'autres liens (page précédente, première page, dernière page).

  7. #7
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut
    Citation Envoyé par nicoaix
    Le plus simple c'est de faire un seul fichier film.php et de faire un système de pages.
    Par exemple dans ta page film.php tu fais un lien sur le mot "suivant" qui pointe vers ta page film.php. Tu passe en paramètre un numéro de page (par exemple le numéro de la page courante que tu stockes dans une variable) incrémenté de 1 et tu mets à jour ta variable page courante. Ensuite tu créées une instruction sql qui tienne compte de ta page en cours (exemple: si page = 2 alors affiche les enregistrement ($page_courante*10) à ($page_courante*10)+10)
    De même avec d'autres liens (page précédente, première page, dernière page).
    Est-ce que ça ressemblerait à ça svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?PHP
    	// on définit le numéro de la page
    	if(!isset($_GET['page']) || $_GET['page'] < 2)
     		{
     			$page = 1; 
    		}
    	else 
    		{
     			$page = $_GET['page']; 
    		}
     
    	// on définit le nombre de résultats max par page
    	$nombre_resultats = 30;
     
    	// on détermine l'index du 1er resultat que l'on veut (0, 30, 60)
    	$debut = ($page-1)*$nombre_resultats;
     
    	// on effectue la requete
    	$requete = "SELECT SQL_CALC_FOUND_ROWS * FROM films ORDER BY nomfilm DESC LIMIT $debut, $nombre_resultats;";
     
    	// on détermine le nombre d'entrées totales correspondant à la requete
    	$num_rows = mysql_result(mysql_query("SELECT FOUND_ROWS()"), 0);
     
    	// on affiche les 'page précédente' et 'page suivante
    	if($_GET['page'] != 1)	
    		{
     			echo '<a href="films.php?page='.$_GET['page']-1.'">Page précédente</a>';
    		}
    	if($page*$nombre_resultats < $num_rows)
    		{
     			echo '<a href="films.php?page='.$_GET['page']+1.'">Page suivante</a>'; 
    		} 
    ?>
    Mais j'obtiens ce message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in c:\program files\easyphp1-7\www\films\films_a.php on line 91

Discussions similaires

  1. [SQL] moteur de recherche : affichage du nombre de résultats
    Par lachourave dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/02/2008, 14h09
  2. [SQL] moteur de recherche
    Par lachourave dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 19/02/2008, 00h24
  3. [Vba,RecordSet,SQL]Moteur de recherche plus rapide?!
    Par omegabahamut dans le forum Access
    Réponses: 2
    Dernier message: 25/02/2007, 21h18
  4. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo