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 :

Recherche par priorité


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut Recherche par priorité
    Bonjour,

    J'ai fait un système qui me permet d'afficher des vidéos ainsi qu'un champs de recherche. Je voudrais avec le champ LIKE me semble t-il (j'ai encore du mal à le maîtriser) faire une recherche.

    Mais par priorité c'est à dire. Si je recherche "Aaa bbb". Et que j'ai une entrée "aaa" et l'autre "aaa bbb" se soit la deuxième qui soit le mieux classé puisqu'elle est plus proche de se que l'on a entrer.

    Voici mon code actuel :
    Code PHP : 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
     
    <?php
        $messagesParPage=9;
        $retour_total=$bdd->query('SELECT COUNT(*) AS total FROM site_video WHERE pseudo = "'.$pseudoChaine.'"'); //Nous récupérons le contenu de la requête dans $retour_total
        $donnees_total=$retour_total->fetch();
        $total=$donnees_total['total'];
        $nombreDePages=ceil($total/$messagesParPage);
     
        if(isset($_GET['page'])){$pageActuelle=intval($_GET['page']);if($pageActuelle>$nombreDePages){$pageActuelle=$nombreDePages;}}else{$pageActuelle=1;}
        $premiereEntree=($pageActuelle-1)*$messagesParPage;
     
        $retour_messages=$bdd->query('SELECT * FROM site_video WHERE pseudo = "'.$pseudoChaine.'" ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
        while($videos=$retour_messages->fetch()){ ?>
        <div id="img_play">
            <a href="video.php?v=<?php echo $videos['id_youtube']; ?>&id=<?php echo $videos['id']; ?>"><img src="<?php echo $videos['image']; ?>" id="img_sousplay" width="256px" height="192px"/>
            <span style="color:black;font-size:13px;text-decoration:none;"><?php echo ucwords($videos['nom']); ?></span></a>
        </div>
    <?php } ?>



    Une idée pour faire ça ?
    Merci d'avance.
    Valentin.

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Salam ; comme ça a la volé je dirai genre :
    $requete= "select * from tatable where critére LIKE ".$tavariable."%";
    en delphi j’utiliserai findnearest l'equivalent en php !!!!!!

    fait un tour :
    http://www.supportduweb.com/scripts_...-internet.html
    une bonne tasse de ca ferai du bien pour ceux qui ont eu passage difficile a 2012

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Regarde la fonction MATCH AGAINST
    http://dev.mysql.com/doc/refman/5.0/...xt-search.html

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM `user`
    WHERE MATCH (`nom`) AGAINST('aaa bbb')
    Ça tri les résultats par pertinence
    Besoin d'un artisan ? Trouvez votre bonheur ici : http://www.touslesartisans.com

  4. #4
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    @redoran : Merci de prendre du temps pour me répondre mais je recherche à faire une recherche (sans mauvais jeux de mots) par pertinence.

    @laipreu : Merci de prendre du temps également pour me répondre, j'ai donc PDO essayé ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $retour_messagesp=$bdd->query('SELECT * FROM site_video WHERE MATCH (`nom`) AGAINST("aaa bbb")');
    while($videos=$retour_messagesp->fetch()){      
    echo $videos['nom'];
    }
    Mais j'obtiens :
    Call to a member function fetch() on a non-object
    D'avance, merci.

    PS : L'erreur venais que mon champs n'étais pas en Full-Text dans ma BDD. Mais là il ne me renvoie aucun résultat ...

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je crois que la recherche FULL TEXT n'analyse les données qu'à partir de 4 caractères par défaut. Comme te recherche ne contient que deux mots de 3 lettres, peut-être que tu n'obtiens aucun résultat et que c'est ça qui provoque ensuite l'erreur PHP.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    J'ai essayé avec plus de caractère mais pareil
    PS : AH oui mais non, y a t-il un moyen que les moins de caractère soit toléré, 2 par exemple ?
    J'avais entendu parlais de ft_min_word_len c'est dans le php.ini ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Yep c'est limité à 4 par défaut, je sais qu'on peut le bouger, mais je ne sais pas comment (je n'ai pas eu à m'y pencher pour le moment).

    Pour ton erreur tu as bien mis le champ `nom` en FULLTEXT dans ta base de données? Et si tu as déclaré plusieurs champs en FULLTEXT dans une même table tu dois tous les inclure dans la requête. Sinon ça ne fonctionnera pas (ou alors je ne connais pas la feinte).
    Je viens de découvrir cette fonction, donc je suis encore en mode découverte
    Besoin d'un artisan ? Trouvez votre bonheur ici : http://www.touslesartisans.com

Discussions similaires

  1. Requète pour une recherche par Priorité
    Par amine.h dans le forum Langage SQL
    Réponses: 1
    Dernier message: 28/12/2011, 14h45
  2. Rechercher un groupe du mots par priorité
    Par Stalk3R dans le forum Langage
    Réponses: 5
    Dernier message: 19/12/2011, 23h43
  3. Recherche par mots clés
    Par legillou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2005, 10h56
  4. Probleme de recherche par listbox
    Par haigwepa dans le forum IHM
    Réponses: 6
    Dernier message: 12/10/2004, 19h57
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

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