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

Laravel PHP Discussion :

Requête pour une recherche


Sujet :

Laravel PHP

  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 10
    Par défaut Requête pour une recherche
    Bonjour !

    Voila, je suis en train de développer un site marchand, et tout est presque fini, donc je m'attelle à des choses un peu... Secondaire dirons-nous, mais qu'on ne peut certainement pas mettre de côté avant le lancement du site. Donc, la barre de recherche qui peut permettre de rechercher directement le ou les produits associés.

    Donc ! J'en avais fait un il y a deux ans, mais c'était un peu naze, je checkais simplement l'expression entière et je la vérifiais dans une zone précise. Là, je veux séparer les mots clés entrés, et vérifier dans le nom du produit, la référence ET la description si ils y sont. Mais pour l'instant, je bloque déjà sur le nom du produit, alors je suis une bonne grosse quiche lorraine.

    J'ai déjà fait un petit formulaire de recherche en laravel, donc du coup la forme je l'ai ; c'est pour la syntaxe je pense que ça bloque, parce qu'on doit me dire : "Ah non, cherche pas, deux Where dans la même requête, pour vérifier le même champ, moi, je démissionne.". Ce que je peux comprendre, l'escavagisme est aboli, mais bon, c'est un peu relou.

    Donc : voici le code que j'ai essayé de pondre pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       	$clefs = Input::get('recherche');
        	$mots = explode(' ', $clefs);
     
        	$resultat = DB::table('produits');
        	foreach($mots as $m)
    			{
    				$resultat->where('nom', 'like', '%'.$m.'%');
    	    	}
        	$resultat->get();
     
    var_dump($resultat);
    Voici l'un des résultats que ça me donne quand je le lance comme ça (en abrégé) :
    object(Illuminate\Database\Query\Builder)[236]
    protected 'connection' =>
    object(Illuminate\Database\MySqlConnection)[229]
    protected 'pdo' =>
    object(PDO)[230]
    protected 'readPdo' => null
    protected 'reconnector' =>
    object(Closure)[235]
    protected 'queryGrammar' =>
    object(Illuminate\Database\Query\Grammars\MySqlGrammar)[231]
    protected 'selectComponents' =>
    array (size=11)
    ...
    Et quand j'essaye, par folie, de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($resultat as $r)
        	{
        		echo $r->produits->nom;
        	}
    On me dit "Trying to get properties of non-object", ce que je peux comprendre, j'aurai pas aimé qu'on insulte ma maman moi non plus. Du coup, je suppute que pour faire une requête de ce genre, il faut que je me fasse des sous-requêtes, non ? Le soucis, c'est qu'en Laravel, je n'en ai jamais fait, et j'ai pas spécialement envie de patauger pendant encore trois heures parce que bon. Je m'en remet donc à vous : insultez-moi, trainez-moi dans la boue, tout ce que vous voudrez, mais si vous avez une idée pour faire marcher ma simple petite recherche, n'hésitez pas

    Merci !

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505

  3. #3
    Membre éprouvé
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Billets dans le blog
    3
    Par défaut
    Salut,
    Tu peux essayer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $wheres = ['a', 'b', 'c'];
     
    $q = new Product;
     
    foreach ($wheres as $v) {
        $q = $q->where('nom', 'like', '%' . $v . '%'); 
    }
    Dans la version 5.0 de Laravel, tu peux passer à la fonction 'where' un tableau, utile dans ce cas-ci !

    Bien à toi,

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. Problème requête sql pour une recherche
    Par Zoldik dans le forum Langage SQL
    Réponses: 21
    Dernier message: 03/03/2009, 14h01
  3. Requête pour une recherche sur champs multiple d'une table
    Par fred777 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/10/2008, 16h33
  4. [SQL] Comment feriez-vous cette requête pour une recherche ?
    Par Core8 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/02/2008, 11h58
  5. [VB.NET] Quel objet tableau pour une recherche indexée ???
    Par Kitano dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/09/2004, 09h38

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