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

Langage PHP Discussion :

fonction recherche


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut fonction recherche
    slt tlm,

    en fait j'ai crée une fonction recheche dans une classe abonnés qui permet de chercher un livre mais ici je suis bloqué entre mettre la result sous form html ici dans la fonction ou non parce que la resultat de ma fonction me retourne seulement un element et je ne sais pas comment faire mieux pour avoir tout les elements ,ou bien si quelqu'un peut m'aider


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function rechercher($livre){
                    $rep = data::result("SELECT * from  livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
                    return $rep['auteur'];
     
    }
    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    A quoi sert ta méthode result ?

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    hello, y'a une solution plus simple pour ta recherche qui est de concaténer les champs et de faire une recherche dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM `livre_biblio` WHERE CONCAT_WS(CHAR(0), `nom`, `auteur`, `edition`, `date_edition`) LIKE '%$livre%';

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    tout dépends de ce que tu veux faire. si c'est un petit dev' de stage ou de TP va au plus rapide.

    Si c'est pour implementer une fonctionnalité clée de ton site web perso ou pro, découple au maximum tout ce qui est présentation de l'information et présentation des données.

    en gros tu fais un "côté" moteur de l'application qui rempli des tableaux ou des objets et tu fais un autre "côté" renderer de l'appli qui converti les tableaux et les objets en html pdf xml doc ... ppt... odt ...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par sabotage Voir le message
    A quoi sert ta méthode result ?
    public static function result($query){
    $q = mysql_query($query) or die(mysql_error());
    $res = mysql_fetch_array($q);
    return $result[] = $res;
    }

    c une fonction dans une utre class database

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par molo1987 Voir le message
    public static function result($query){
    $q = mysql_query($query) or die(mysql_error());
    $res = mysql_fetch_array($q);
    return $result[] = $res;
    }

    c une fonction dans une utre class database
    normale d'avoir qu'un résultat tu va en cherche que 1

    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $result = array();
     
    while($res = mysql_fetch_array($q))
    {
        $result[] = $res;
    }
     
    return $result;

    t'as pas PDO ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par gene69 Voir le message
    tout dépends de ce que tu veux faire. si c'est un petit dev' de stage ou de TP va au plus rapide.

    Si c'est pour implementer une fonctionnalité clée de ton site web perso ou pro, découple au maximum tout ce qui est présentation de l'information et présentation des données.

    en gros tu fais un "côté" moteur de l'application qui rempli des tableaux ou des objets et tu fais un autre "côté" renderer de l'appli qui converti les tableaux et les objets en html pdf xml doc ... ppt... odt ...
    bon c un site perso et aussi pour m'ameliorer dans le OOP mais keske tu veux dire avec decouple au maximum et pk?(tu veux dire une fonction pour chaque element?)

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    normale d'avoir qu'un résultat tu va en cherche que 1

    t'as pas PDO ?
    Oui mais ce que je veux savoir est ce que c preferable de mettre les resultat dans une div dans cette fonction ou bien non (ce que je veux dire est que c acceptable dans le POO de mixer html et php come ça ou non) et pour le PDO je m'y suis pas encore plongé dedans

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    après tu devrai juste faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $rep = data::result("SELECT auteur from  livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
    return $rep;
    mais je sais pas ce que t'en fait de ton return...

  10. #10
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    après tu devrai juste faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $rep = data::result("SELECT auteur from  livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
    return $rep;
    mais je sais pas ce que t'en fait de ton return...
    Le return c pour me retourné ce que je veux comme resultat ,cette resultat je veux la mettre dans ma page,
    c a d la personne il va mettre le nom du livre par la suite il aura comme resultat un tableau qui contient tout les informations de tout les livres trouvés(auteur,edition,année.....) mais je repete ce que je veux savoir ce tableau la que je veux afficher est ce que je peux le coder dans ma fonction ou il y a une autre solution (car d'apres ce que je c c pas acceptable de melanger html et php dans le POO , je parle au niveau des classe biensur)

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    $rep te retourne un tableau a toi après dans ta vu d'en faire ce que tu veux niveau HTML

    un peu compliquer ta phrase non ?
    mais je repete ce que je veux savoir ce tableau la que je veux afficher est ce que je peux le coder dans ma fonction

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    $rep te retourne un tableau a toi après dans ta vu d'en faire ce que tu veux niveau HTML

    un peu compliquer ta phrase non ?
    voila j'ai rapidement ecrit un exemple

    public function rechercher($livre){
    $rep = data::result("SELECT * from livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
    echo 'tr';
    echo 'td'.$rep['auteur'].'</td>';
    echo 'td'.$rep['edition'].'</td>';
    echo 'td'.$rep['date_edition'].'</td>';
    echo '</tr>';

    }

    ici j'ai mis mon tableau dans la fonction ,maintenant ce que je veux savoir est ce que je peux procéder comme ça dans le POO ou bien est ce qu'il'y'a une autre maniere acceptable et pro ?

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ou appelles tu ta méthode ?

  14. #14
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    dans la page d'acceuil des abonés

    <div>
    <?php
    if(isset($_POST['nom'])){
    echo($agent->rechercher($_POST['nom']));
    }
    ?>
    <form method='post' action='page-agent.php'>
    <input type='text' name='nom'/>
    <input type='submit' value='rechercher'/>
    </form>
    </div>

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    c'est ici que tu dois le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(isset($_POST['nom']))
    {
        $resultats = $agent->rechercher($_POST['nom']);
     
        foreach($resultats as $resultat)
        {
            echo 'tr';
            echo 'td'.$resultat['auteur'].'</td>';
            echo 'td'.$resultat['edition'].'</td>';
            echo 'td'.$resultat['date_edition'].'</td>';
            echo '</tr>';
        }
    }

  16. #16
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    j'ai mis ça et ç a foncionné

    public function rechercher($livre){
    $rep = data::result("SELECT * from livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
    return $r[] = $rep;
    }

    mais un nouveau souci c que la resultat est un peu longue j'ai eu la meme resultat repeté presque 8 fois

    et je m'exuse d'avoir prendre ton temps

  17. #17
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    c'est ici que tu dois le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(isset($_POST['nom']))
    {
        $resultats = $agent->rechercher($_POST['nom']);
     
        foreach($resultats as $resultat)
        {
            echo 'tr';
            echo 'td'.$resultat['auteur'].'</td>';
            echo 'td'.$resultat['edition'].'</td>';
            echo 'td'.$resultat['date_edition'].'</td>';
            echo '</tr>';
        }
    }
    oui genial ça marche
    j'ai mis ça aussi et ç a foncionné

    public function rechercher($livre){
    $rep = data::result("SELECT * from livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
    return $r[] = $rep;
    }

    mais un nouveau souci c que la resultat est un peu longue j'ai eu la meme resultat repeté presque 8 fois

    et je m'exuse d'avoir prendre ton temps

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    faire return $r[] = $rep; ne sert a rien, si tu fais tout comme j'ai dis depuis le début ca devrait rouler

  19. #19
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    faire return $r[] = $rep; ne sert a rien, si tu fais tout comme j'ai dis depuis le début ca devrait rouler
    T'a raison j'ai tout refait ç'a fonctionné 1000000000000 merci .resolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction Recherche(google) et liens morts
    Par cyrille_ dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 06/01/2006, 12h43
  2. Réponses: 3
    Dernier message: 15/11/2005, 18h50
  3. [fonction] recherche de methode inutilisée
    Par frouge dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/03/2005, 13h37
  4. fonction Recherche
    Par pingoui dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 31/08/2004, 17h44

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