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 :

form de recherche et session


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut form de recherche et session
    Salut

    j'ai fait un formulaire de recherche sur une liste de produit pour ma page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     <form action="search.php" method="GET" name="research">
                        Cherche parmi les r&eacute;sultats
                        <input type="hidden" name="type" value="<?php echo $_SESSION['produit'];?>" />
                          input name="p" type="text" class="modifcrit" />
     
                          <input name="search" type="submit"  value="Ok!" />
     
                      </form>
    Ici donc mon champ texte à pour nom "p" et voilà ma requête pour la recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
      //connexion à ma BD
    ....
     
    $paz="p";
    $p=$$paz;
     
    $search= "SELECT p.id, p.nompro, p.prix, p.commentaire, m.Mraisocial, i.picture 
    FROM produits p, marchand m, images i, dataprod d 
    WHERE  d.idproduits = p.id AND p.proprio = m.idmarchand 
    AND i.ref_img = p.id AND p.coche='OUI' 
    AND idtype ='".$_SESSION['produit']."' AND p LIKE '%".$p."%'";
    La requete ne marche pas car on dirait qu'il ne vois pas la valeur de "p" quand j'entre un critère de recherche, confère ce message lorsque j'ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    echo $search;
    	exit;
     
    il donne comme résultat :
     
    SELECT p.id, p.nompro, p.prix, p.commentaire, m.Mraisocial, i.picture 
    FROM produits p, marchand m, images i, dataprod d 
    WHERE d.idproduits = p.id AND p.proprio = m.idmarchand 
    AND i.ref_img = p.id AND p.coche='OUI' AND idtype ='7' 
    AND p LIKE '%%'
    Alors que quand j'utilisais pas les variable de session la requête fonctionnait mais étant donné que j'ai plusieurs formulaire j'avais des problèmes avec mes GET et mes variable car je devais les fait balader de page en page il yavait dc perte de valeur par les variables.

    Alors aider moi please

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    rien compris, mais

    • ne manque-t-il pas la balise < avant input name="p" ?


    • Si la méthode de ton formulaire est GET, récupérer les infos se fait par $_GET, donc $p = $_GET['p']. Après, tu peux toujours l'affecter dans une variable de session pour garder la garder de page en page

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    ok pour resoudre j'ai du mettre $p=$_GET['p']; Maintenant supposons que mon formulaire peut avoir plusieurs champ "p" pour ce faire je fait ça :
    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
     
    $requete= "SELECT p.id, p.nompro, p.prix, p.commentaire, m.Mraisocial, i.picture
    FROM produits p, marchand m, images i, dataplus d WHERE  
    d.prod_plus = p.id AND p.proprio = m.idmarchand AND i.ref_img = p.id AND p.coche='OUI' 
    AND idtype ='".$_SESSION['produit']."'  ";
     
    for ($i=1; $i<=$total; $i++)
    {
    	$paz="p".$i;
    	$p=$$paz;
    	if (!empty($p))
    	{
    		$requete.=" AND p$i='".$p."'";
    	}
    }
    // et pour voir la requête je fait...
    echo $requete;
    exit;
    Le résultat voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT p.id, p.nompro, p.prix, p.commentaire, m.Mraisocial, i.picture 
    FROM produits p, marchand m, images i, dataplus d WHERE d.prod_plus = p.id
     AND p.proprio = m.idmarchand AND i.ref_img = p.id AND p.coche='OUI' 
    AND idtype ='37'
    Je constate dc qu'il ne passe pas la condition "if" pourtant c bizarre sur mon poste à la caz ça marche propre mais sur un autre poste il pose ce problème

    ET la dans ce cas si je dois utilisé (je rappel que mon formulaire est en méthode GET) les $_GET je connais pas la notation : $_GET['p'].$i ....

    mais ça marche pas
    *
    Merci de m'aider

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    meme erreur qu'avant, tu parles de $p1, $p2 etc au lieu de $_GET['p1']
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!empty($_GET['p'.$i]))

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    ok mais pourquoi la requête ne passe pas ma condition if(!empy($p)) ...????

    et je c pas si c comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for ($i=1; $i<=$total; $i++)
    {
     
    	if (!empty($_GET['p'.$i]))	
    		{
    		$requete.=" AND p$i='".$_GET['p'.$i]."'";
    	}
    }

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    je comprends pas ta question, ca veut dire quoi "ma requete ne passe pas le if" ???
    quelle requete obtiens-tu et quelle requete aimerais tu avoir à la place?

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    Reponds plus merciiiiiiii ça passe graveeeeee non suis trop content merci encore

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

Discussions similaires

  1. [forms 6i] Recherche d'exemples
    Par isoman dans le forum Forms
    Réponses: 3
    Dernier message: 28/05/2008, 21h15
  2. Réponses: 14
    Dernier message: 26/02/2008, 16h52
  3. [Recherche] script session utilisateurs ..
    Par cuisto44000 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/02/2008, 15h28
  4. Code ouverture form via recherche
    Par LUCAS-28 dans le forum IHM
    Réponses: 2
    Dernier message: 18/09/2007, 21h23
  5. Recherche Fonction session spécifique
    Par carmen256 dans le forum Langage
    Réponses: 9
    Dernier message: 04/07/2006, 14h54

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