Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2011, 14h04   #1
Invité de passage
 
Inscription : février 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 15
Points : 1
Points : 1
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 :
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 :
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);
noche29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 15h36   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 709
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 709
Points : 3 279
Points : 3 279
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 :
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]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 16h51   #3
Invité de passage
 
Inscription : février 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 15
Points : 1
Points : 1
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 ?
noche29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 10h10   #4
Invité de passage
 
Inscription : février 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 15
Points : 1
Points : 1
j ai essayer de faire un essai pour essayer de lui faire ignorer les champ non renseigner
Code :
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 ?
noche29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 10h58   #5
Membre régulier
 
Inscription : juin 2008
Messages : 105
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 105
Points : 84
Points : 84
Salut, quand tu metsC'est pour lui attribuer une valeur? , car si c'est le cas, il faut mettreAlpha.
alpha232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 11h38   #6
Invité de passage
 
Inscription : février 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 15
Points : 1
Points : 1
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
noche29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 12h48   #7
Invité de passage
 
Inscription : février 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 15
Points : 1
Points : 1
c es bon j ai réussit voici le code corriger pour ceux qui auront le même problème :
Code :
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)."'";};
noche29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h40.


 
 
 
 
Partenaires

Hébergement Web