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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    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 : 53
    Localisation : Algérie

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

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    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 confirmé
    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
    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

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

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    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
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 815
    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, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 averti
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    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 ?

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