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 :

utilisation de plusieurs variables dans une requete [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut utilisation de plusieurs variables dans une requete
    bonjour,
    j'ai plusieurs liste déroulante qui envoie simultanément des variables vers un tableau dynamique pour n afficher que les choix demander

    je réussit a les récupérer mais ça me marque Unknown column 'PRO008K1.doc' in 'where clause , mon problème vient que le nom rapporter n es pas entoure par des apostrophes donc il es en erreur mais si j en met cela marque une erreur php,comment faire ?

    mon deuxième problème es lors de l envoie de plusieurs variable tous les champ ne sont pas remplit comment dire de les ignorer et d'utiliser seulement celle envoyer ?
    voici mon code de récupération des variables
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $doc_nom_usuel     = $_POST["nom"] ;
    $diffusion_date_valide =$_POST ["date_d_approbation"];
    $diffusion_statut = $_POST ["statut"];
    $utilisateur_statut = $_POST ["diffusion_statut"];
    $utilisateur_nom = $_POST ["redacteur"];
    $doc_nom_code = $_POST ["code"];
    $doc_version = $_POST ["version"];
    $doc_ref = $_POST ["reference"];
    et ma requete sql
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if (strlen ($doc_nom_usuel.$diffusion_date_valide.$diffusion_statut.$utilisateur_nom.$doc_nom_code.$doc_version.$doc_ref ) > 0)  {
     
     
    $query=("SELECT document.doc_id,diffusion_id,utilisateur_id,doc_nom_usuel,doc_nom_code,doc_ref,doc_version,diffusion_statut,diffusion_date_valide,utilisateur_nom 
    FROM document,utilisateur,diffusion 
    WHERE utilisateur.utilisateur_id=document.doc_redacteur and document.doc_id=diffusion.doc_id and diffusion.diffusion_expediteur_id=utilisateur.utilisateur_id
      and doc_nom_usuel = ".$doc_nom_usuel.
     " and diffusion_date_valide = ".$diffusion_date_valide.
     " and diffusion_statut = ".$diffusion_statut.
     " and utilisateur_nom = ".$utilisateur_nom.
     " and doc_nom_code =" .$doc_nom_code.
     " and doc_nom_code =" .$doc_version.
     " and doc_ref =" .$doc_ref);

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    On ne sait pas de quelle manière tu exécute la requête SQL, mais si tu utilise les fonctions mysql_*, alors il faut utiliser mysql_real_string() pour tout ce qui est chaine de caractère.
    La doc : http://fr2.php.net/manual/fr/functio...ape-string.php

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $requete = "SELECT truc
    FROM machin
    WHERE bidule = '".mysql_real_escape_string($truc_muche)."'";

    Pour info, pour les BBCodes c'est : code=php ou code=sql à mettre entre []
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    je te remercie pour cette méthode , mes données sont bien utiliser

    ,mais mon problème maintenant est que pour que la requête marche il faut remplir tous les champs ,
    comment lui dire que si un champ n es pas renseigner de l ignorer ?

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    j ai essayer de faire un essai pour essayer de lui faire ignorer les champ non renseigner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $query="SELECT document.doc_id,diffusion_id,utilisateur_id,doc_nom_usuel,doc_nom_code,doc_ref,doc_version,diffusion_statut,diffusion_date_valide,utilisateur_nom 
    FROM document,utilisateur,diffusion 
    WHERE utilisateur.utilisateur_id=document.doc_redacteur and document.doc_id=diffusion.doc_id and diffusion.diffusion_expediteur_id=utilisateur.utilisateur_id"
     .if (!$doc_nom_usuel) {doc_nom_usuel == 0;} else  { "and doc_nom_usuel = '".mysql_real_escape_string($doc_nom_usuel)."'"}
     .if (!$diffusion_date_valide) {diffusion_date_valide == 0;} else { "and diffusion_date_valide = '".mysql_real_escape_string($diffusion_date_valide)."'"}
     .if (!$diffusion_statut ) {diffusion_statut == 0;} else {"and diffusion_statut = '".mysql_real_escape_string($diffusion_statut)."'"}
     .if (!$utilisateur_nom) {utilisateur_nom == 0;} else {" and utilisateur_nom = '".mysql_real_escape_string($utilisateur_nom)."'"}
     .if (!$doc_nom_code) {doc_nom_code == 0;} else {" and doc_nom_code = '".mysql_real_escape_string($doc_nom_code)."'"}
     .if (!$doc_version) {doc_nom_code == 0;} else {" and doc_version = '".mysql_real_escape_string($doc_version)."'"}
     .if (!$doc_ref) {doc_ref == 0;} else {" and doc_ref = '".mysql_real_escape_string( $doc_ref)."'"};
    mais cela me marque Parse error: syntax error, unexpected T_IF pour la ligne ou commence mes .if
    voyez vous un problème ou connaissez vous une autre méthode ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 109
    Points
    109
    Par défaut
    Salut, quand tu metsC'est pour lui attribuer une valeur? , car si c'est le cas, il faut mettreAlpha.

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    merci de ta réponse , en faite je voulais lui dire de l ignorer en mettant la valeur 0 pour qu'il n utilise pas cette variable dans la requête, j ai modifier mais il me marque tjrs Parse error: syntax error, unexpected T_IF in a la ligne du 1er .if

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    c es bon j ai réussit voici le code corriger pour ceux qui auront le même problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $query="SELECT document.doc_id,diffusion_id,utilisateur_id,doc_nom_usuel,doc_nom_code,doc_ref,doc_version,diffusion_statut,diffusion_date_valide,utilisateur_nom 
    FROM document,utilisateur,diffusion 
    WHERE utilisateur.utilisateur_id=document.doc_redacteur and document.doc_id=diffusion.doc_id and diffusion.diffusion_expediteur_id=utilisateur.utilisateur_id ";
     
     
     
    if (strlen($doc_nom_usuel)>0) {$query=$query. " and doc_nom_usuel like '%".mysql_real_escape_string($doc_nom_usuel)."%'";}
    if (strlen($diffusion_date_valide)>0) {$query=$query.  " and diffusion_date_valide = '".mysql_real_escape_string($diffusion_date_valide)."'";}
    if (strlen($diffusion_statut)>0) {$query=$query.  " and diffusion_statut = '".mysql_real_escape_string($diffusion_statut)."'";}
    if (strlen($utilisateur_nom)>0) {$query=$query.  " and utilisateur_nom = '".mysql_real_escape_string($utilisateur_nom)."'";}
    if (strlen($doc_nom_code)>0) {$query=$query.  " and doc_nom_code = '".mysql_real_escape_string($doc_nom_code)."'";}
    if (strlen($doc_version)>0) {$query=$query.  " and doc_version = '".mysql_real_escape_string($doc_version)."'";}
    if (strlen($doc_ref)>0) {$query=$query.  " and doc_ref = '".mysql_real_escape_string( $doc_ref)."'";};

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

Discussions similaires

  1. Utilisation d'une variable dans une requete
    Par namto dans le forum PL/SQL
    Réponses: 2
    Dernier message: 22/03/2010, 11h23
  2. utiliser des variables dans une requet INSERT
    Par k_boy dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/12/2009, 10h45
  3. Utiliser une variable dans une requete et *
    Par USnico dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 30/10/2007, 17h41
  4. utilisation d'une variable dans une requete SQL
    Par ezneti dans le forum Visual C++
    Réponses: 1
    Dernier message: 30/04/2007, 09h47
  5. utilisation de variable dans une requete
    Par JUSTIN Loïc dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 26/07/2006, 08h40

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