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 :

requete sql avec like en utilisant une variable [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Points : 11
    Points
    11
    Par défaut requete sql avec like en utilisant une variable
    mon probleme est le suivant :
    j'ai une liste deroulante qui propose plusieurs critere de choix (function). en temps normal dès que l'utilisateur fait un choix d'une function et clique sur le bouton search , je dois lui renvoyer un resultat de sa recherche . et le resultat n'est que la requete decrite en dessous dans le code.

    mon soucis c'est que ma requete est juste quand j'enleve la variable $function et je la remplace avec l'une des function. par contre elle me donne rien du tout quand je mets la variable $function.

    j'utilise PHP5.2.8 ET PHPMYADMIN 3.1.1.

    MERCI D'avance

    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
     
    $function=$_POST['function'];
    $sql='SELECT c.name as customer, c.logo, co.name AS country, c.url_customer, g.firstname as gpm_firstname, g.lastname as gpm_lastname, m.firstname as op_firstname, m.lastname as op_lastname, c.customer_contact_name, c.customer_contact_phone, c.customer_benefits, p.number_employees_outsourced, p.alu_benefits, p.solution, p.challenge,r.name as region, u.reg,t.name as type_project,g.x500link as x500link, m.x500link as op_link,con.contract_award_date as date, con.contract_duration_years as duration,s.subscribers_scope as sub, link_page_gpm as link,p.link_alu as alu,p.link_contact as contact,p.link_scope as scope,p.link_calendar as calendar,p.link_measure as measure, p.link_other as other,p.link_customer as customer1,s.function_scope as fs 
    FROM customer AS c, project AS p, gpm AS g, op_mgr AS m, country AS co,region as r, regional_unit as u, type_project as t, contract as con, scope as s , vendor_scope as vs
    WHERE vs.id_project=p.id_project
    and s.function_scope like "%' .$function.' %"
    and s.id_scope=p.id_scope 
    and  con.id_customer=c.id_customer
    and c.id_customer = p.id_customer
    AND p.id_op = m.id_op
    AND p.id_gpm = g.id_gpm
    AND co.id_country = c.id_country 
    and co.id_region=r.id_region
    and co.id_uniteregional=u.id_uniteregional
    and t.id_typeproject=p.id_typeproject 
      '

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    fait un echo $function pour voir si tu as bien ce que tu veux ds $fonction sinon montre nous le form qui fournit ton $fonction
    Stay in Bed .. Save Energy

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par boo64 Voir le message
    fait un echo $function pour voir si tu as bien ce que tu veux ds $fonction sinon montre nous le form qui fournit ton $fonction
    elle fonctionne $function je recupere le contenu de la variable et pour le code de la liste deroulante est la suivante
    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
    19
    20
    21
    22
    23
    24
    // REQUETE 
    $sql="SELECT* from function ";
     
    // LISTE DEROULANTE 
     
    <form id="formulaire"  method="post" action="view_all_project_function_personal_gpm.php" name="formulaire"onsubmit="return validation();">
    <TABLE>
    <TR><TD>
    <SELECT name="function" size="15" 
                style=" WIDTH: 500px; FONT-SIZE: small; FONT-FAMILY: Arial; BACKGROUND-COLOR: white"  >
     
    <?php while($rows1=mysql_fetch_array($result1)){
    ?>
    <OPTION value="
                  <?PHP echo $rows1['function']; ?>" >    <?PHP echo $rows1['function']; ?> </OPTION>
     							<?php
    }
     
    ?></SELECT>
    </TD>
    </tr>
    </table>
    <BR/><BR/><INPUT type="submit" value="  SEARCH  ">
    </FORM>

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 235
    Points : 183
    Points
    183
    Par défaut
    un echo de ta variable $sql peut aussi te donner comment ta requête est envoyé au SGBD...

    Si tu la vois bien construite, tu peu essayer de copier coller cet "echo" directement dans ton SGBD pour voir s'il te ressors tes résultats...

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Borowsky Voir le message
    un echo de ta variable $sql peut aussi te donner comment ta requête est envoyé au SGBD...

    Si tu la vois bien construite, tu peu essayer de copier coller cet "echo" directement dans ton SGBD pour voir s'il te ressors tes résultats...
    g pas compris ce que tu veux dire par la

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 235
    Points : 183
    Points
    183
    Par défaut
    Lorsque tu construis ta variable $sql (quand tu mets $sql = "ta requete") juste après fai un "echo $sql" pour voir si ta requête est bien construite...
    Après tu peux nous poster le résultat de cet echo.

    Après si tu peux copier/coller le résultat de cet echo pour le mettre dans PHPMyAdmin à l'endroit ou tu peux exécuter tes requêtes... Et tu vois si elle fonctionne et si c'est pas le cas, quelle erreur il te renvoie...

    Ai-je été plus clair ?

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Borowsky Voir le message
    Lorsque tu construis ta variable $sql (quand tu mets $sql = "ta requete") juste après fai un "echo $sql" pour voir si ta requête est bien construite...
    Après tu peux nous poster le résultat de cet echo.

    Après si tu peux copier/coller le résultat de cet echo pour le mettre dans PHPMyAdmin à l'endroit ou tu peux exécuter tes requêtes... Et tu vois si elle fonctionne et si c'est pas le cas, quelle erreur il te renvoie...

    Ai-je été plus clair ?
    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
     
    quand j'ai fait echo $sql ca me donne ca 
    $function=$_POST['function'];
    $sql='SELECT c.name as customer, c.logo, co.name AS country, c.url_customer, g.firstname as gpm_firstname, g.lastname as gpm_lastname, m.firstname as op_firstname, m.lastname as op_lastname, c.customer_contact_name, c.customer_contact_phone, c.customer_benefits, p.number_employees_outsourced, p.alu_benefits, p.solution, p.challenge,r.name as region, u.reg,t.name as type_project,g.x500link as x500link, m.x500link as op_link,con.contract_award_date as date, con.contract_duration_years as duration,s.subscribers_scope as sub, link_page_gpm as link,p.link_alu as alu,p.link_contact as contact,p.link_scope as scope,p.link_calendar as calendar,p.link_measure as measure, p.link_other as other,p.link_customer as customer1,s.function_scope as fs 
    FROM customer AS c, project AS p, gpm AS g, op_mgr AS m, country AS co,region as r, regional_unit as u, type_project as t, contract as con, scope as s , vendor_scope as vs
    WHERE vs.id_project=p.id_project
    and s.function_scope like "%' L2'%"
    // SI JE CHOISIS L2
    and s.id_scope=p.id_scope 
    and  con.id_customer=c.id_customer
    and c.id_customer = p.id_customer
    AND p.id_op = m.id_op
    AND p.id_gpm = g.id_gpm
    AND co.id_country = c.id_country 
    and co.id_region=r.id_region
    and co.id_uniteregional=u.id_uniteregional
    and t.id_typeproject=p.id_typeproject
    et j'ai remarquè qu'il ya un espace dans le parametre de la variable like à la palce de me donner L2 il me donne " L2".
    ET QUAND J'ai executè la requete , il me donne rien et c'est normal vu que j'ai "L2" ET NON pas " L2"

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    merci pr ton astuce j'ai trouvè la solution au fait l'envoie du parametre qui vient d'une liste deroulant contenait un espace c pr ca il me donnait rien

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/09/2007, 13h52
  2. requete SQL avec where dynamique dans une servlet
    Par Mickael Scofild dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 12/08/2007, 12h05
  3. requete sql avec like ?
    Par Melvine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/11/2006, 15h49
  4. Attribuer une requete sql avec 'like' en source de formulaire
    Par en_gel_ho dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/10/2006, 13h41
  5. Réponses: 7
    Dernier message: 13/03/2006, 15h39

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