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 :

[SQL] insérer des variables php dans une requête sql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut [SQL] insérer des variables php dans une requête sql
    Bonjour a tous,

    Donc je vous expose mon probleme, je travail sous WAMP5 (windows, apache, mysql, php5).

    Jai fais pas mal de forum et j'ai pas trouvé de reponse donc désolé si cette question a deja été posée.

    Je suis en train (d'essayée) de creer une interface en php, avec une base de données mysql, pour la gestion de clientel de ma société, donc j'ai reussi (non sans fierté j'avoue) a creer la partie remplissage de la base, et maintenant je bloque sur la partie consultation...

    Donc j'ai créée une feuille contenant des checbox, et des zones de texte, donc l'utilisateur doit pouvoir cocher plusieurs case et noter dans dans les zones de texte les critères de selection correspondant. Donc je n'ai plus d'erreures mais rien ne s'affiche

    En fait j'ai esseyai d'inserer les données contenu dans un tableau $tab[], dans ma requete, dans le where. je pense que ca vient de la parceque quand j'ecris une requete normale ca marche, et ça m'affiche les données...

    donc la je vois plus rien alors viens vous demander un peu d'aide parceque la je galère

    voici mon code:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    <?php 
    $nom = $_POST['nom']; 
    $ville = $_POST['ville'];
    $cp = $_POST['cp'];
    $nomresp = $_POST['nomresp'];
    $genre = $_POST['genre'];
    $nomc = $_POST['nomc']; 
    $villec = $_POST['villec'];
    $cpc = $_POST['cpc'];
    $genrec = $_POST['genrec'];
    $nomrespc = $_POST['nomrespc'];
     
    $i = 0;
    $tab = array ();
     
    if(($nom) == 'on')
    {$tab[i] = "nom = '$nomc'" ;
    i==i+1;
    exit();}
     
      if(($ville) == 'on')
          {if( i==0)
          {$tab[i] = "ville = '$villec'";
          exit();}
      $tab[i] = "and ville =  '$villec'" ;
      i==i+1;
      exit();}
     
        if(($cp) =='on')
          {if( i==0)
          {$tab[i] = "cp = '$cpc'";
          exit();}
         $tab[i] = "and cp = '$cpc' " ;
        i==i+1;
        exit();}
     
          if(($nomresp) == 'on')
           { if( i==0)
          {$tab[i] = "nomresponsable = '$nomrespc'";
          exit();}
           $tab[i] = "and nomresponsable = '$nomrespc'" ;
          i==i+1;
          exit();}
     
            if(($genre) == 'on')
              {if( i==0)
          {$tab[i] = "genre = '$genrec'";
          exit();}
             $tab[i] = "and genre = '$genrec'" ;
            i==i+1;
            exit();}
     
    $connexion = mysql_connect('localhost','root','') or die ('Erreur de connexion'.mysql_error());
     
    mysql_select_db('clientsms',$connexion) or die ('Erreur de selection'.mysql_error());
     
    $sql = "SELECT * FROM `entreprise` WHERE '$tab[0]' '$tab[1]' '$tab[2]' '$tab[3]' '$tab[4]' ";
     
    $result = mysql_query($sql) or die('erreur SQL'.sql.mysql_error());
     
    if (mysql_num_rows($result) == 0) 
    {   echo "Aucune ligne trouvée, rien à afficher.";  
    exit;}
    // Tant qu'une ligne existe, place cette ligne dans la variable $row
    // sous la forme d'un tableau associatif.
    // Note : Si vous n'attendez qu'une seule ligne, oubliez la boucle
    // Note : Si vous utilisez extract($row); dans la boucle suivante
    //       vous créerez $userid, $fullname et $userstatus
    while ($row = mysql_fetch_assoc($result)) {   
     echo $row["raisonsociale"].'<br>';   
     echo $row["adresse"].'<br>';
      echo $row["adresse2"].'<br>'; 
       echo $row["adresse3"].'<br>'; 
        echo $row["cp"].'<br>'; 
         echo $row["ville"].'<br>'; 
          echo 'fax: '.$row["fax"].'<br>';  
           echo 'tel: '.$row["numtel"].'<br>'; 
            echo 'port: '.$row["port"].'<br>'; 
             echo $row["civilite"].' '; 
              echo $row["responsable"].'<br>'; 
               echo $row["fonction"].'<br>';   
     echo '.<br>';
     echo '----------------------------------------------------------- <br>';
     }
     
    mysql_free_result($result);
     
     
    mysql_close();
     
     
    ?>
     
    <html>
     
    <head>
    <meta http-equiv="Content-Language" content="fr">
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    </head>
     
    <body link="#FFFF00" vlink="#FFFF00" alink="#FFFF00" text="#FFFF00" bgcolor="#000000">
     
     
    <p align="center"><b><font size="4" face="Usuzi Italic">[Retour a la 
    consultation]</font></b></p>
     
     
    </body>
     
    </html>
    Merci d'avance a vous.

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Je pense que tu as un probleme dans ta requete, or pour la requete ton die() a un probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query($sql) or die('erreur SQL'.sql.mysql_error());
    il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query($sql) or die('erreur SQL! Ma requete : '. $sql .'<br/> Erreur : ' .mysql_error());
    comme tu le fais pour le connect par exemple Et maintenant tu devrais voir l'erreur mysql liée à la requete effectuée.
    Si tu ne trouves pas, montres nous la requete en exemple !

    EDIT : Premiere piste, tu mets des ' ' autour de chaque condition de ton where et je pense que le probleme vient justement de là, il n'y a pas de ' ' autour des 'monchamp = 'aaa' ' and 'monchamp2 = 'bbb' ' ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    Merci pour cette reponse rapide, mais je viens d'essayer et il ne me mets aucune erreure... tout en ne m'affichant toujours rien.

    ma

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT * FROM `entreprise` WHERE '$tab[0]' '$tab[1]' '$tab[2]' '$tab[3]' '$tab[4]'' ;
    voila se que j'ai changée
    et voila se qu'il me mets

    Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\clients\consent.php on line 57

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Citation Envoyé par lili38
    Merci pour cette reponse rapide, mais je viens d'essayer et il ne me mets aucune erreure... tout en ne m'affichant toujours rien.

    ma

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT * FROM `entreprise` WHERE '$tab[0]' '$tab[1]' '$tab[2]' '$tab[3]' '$tab[4]'' ;
    voila se que j'ai changée
    et voila se qu'il me mets

    Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\clients\consent.php on line 57
    Tu as un léger problème avec tes quotes là... Et koopajah a fait une bonne remarque il faut virer les quotes qui entourent tes $tab[i]. De plus il faut faire une boucle car à priori le nombre d'éléments dans $tab est variable donc tu peux très bien avoir un $tab[4] qui n'existe pas et ça il va pas aimer...

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Une astuce pour constuire une telle requête, c'est de l'initialiser avec WHERE 1=1 (qui est toujours vérifié) et ensuite d'ajouter les conditions en mettant AND champ=valeur, ça évite de bricoler avec la valeur de $i.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    z'ai pas tout compris

  7. #7
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Citation Envoyé par lili38
    z'ai pas tout compris
    Ah bah désolé j'ai pourtant fait gaffe de faires des belles phrases en français Qu'est ce qui va pas ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    Amara t'as repondu en meme temps que je poster donc maintenat je vais lire ta reponse... et apres je pourrais dire si j'ai compris ou pas

  9. #9
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Citation Envoyé par lili38
    Amara t'as repondu en meme temps que je poster donc maintenat je vais lire ta reponse... et apres je pourrais dire si j'ai compris ou pas
    Ah ok désolé

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    avoir un $tab[4] qui n'existe pas et ça il va pas aimer...
    ça j'm'en été douté mais bon je m'étais dit que de toutes façon ça aurait été vide donc pas de soucis (je sais ça marche pas comme ça, mais on sait jamais )

    il faut virer les quotes qui entourent tes $tab[i]
    quand je les vires il aime pas non plus...

    bon en tous cas merci de toutes vos reponse rapide, vous étes vraiment sympas.

    bon je vais essayé de faire une boucle, mais faut que je la fasse dans la requete???

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

Discussions similaires

  1. Insérer une variable Bash dans une requête sql
    Par Acidix dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 16/02/2015, 20h39
  2. Réponses: 7
    Dernier message: 01/11/2012, 21h37
  3. [MySql]Insérer une variable "string" dans une requête SQL
    Par Saten dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/10/2008, 17h39
  4. Insérer des champs vides dans une requête sql
    Par js8bleu dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/02/2008, 15h00
  5. [SQL] Comment insérer une variable php dans une requête SQL ?
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/05/2007, 08h47

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