Besoin d'aide Php

Fermé
Valmuz - 2 oct. 2010 à 18:08
 Valmuz - 9 oct. 2010 à 16:37
Bonjour,

J'essaie de récuperer en php une liste d'article correpondant à une recherche effectuée via un formulaire, seulement mon code pour rechercher les articles ne convient pas et je ne trouve pas pourquoi.
Il me met que les variables dans la requete sql sont indéfinies

$req = "select NumArt, DesArt, PrixHT from article, composer where composer.NumArt = article.NumArt and NumS=".$_GET['NumS']." or NumT=".$_GET['NumT']." or NumC=".$_GET['NumC']." ;";
$resultat = mysql_query ($req);


Merci

A voir également:

5 réponses

Profil bloqué
2 oct. 2010 à 22:06
Bonjour,
quand tu fais un select , il ne sais pas dans quel table sont t valeurs , pour sa utilise des ALIAS comme ceci :


$req = "
select NumArt, DesArt, PrixHT
from article a , composer c
where c.NumArt = a.NumArt and NumS="" or NumT=".$_GET['NumT']." or NumC=".$_GET['NumC']." ;";


si t valeurs vienne de la table article tu mes : a.NumArt ou c.NumArt

ensuite , je pense que c'est préférable de récupérer déjà les valeurs puis ensuite de les inclure dans ta requet :

$nums = $_GET['NumS'] ;
$numt = $_GET['NumT'] ;

$req = "
select NumArt, DesArt, PrixHT
from article a , composer c
where c.NumArt = a.NumArt
and NumS="$nums"
or NumT="$numt"
or NumC="$numc"
;
0
Merci beaucoup de ta réponse déja ! J'avais après avoir écrit ce message préciser les tables devant ma jointures mais je n'avais pas penser à mettre mes GET dans une variable.
Le problème c'est que mtn le programme ne m'affiche plus de message d'erreur mais ne m'affiche pas de résultat non plus..
0
Je remet mon code maintenant, je pense que mon erreur vient peut-être de mon affichage des résultats :/

if(isset($_GET['NumS'])) $nums=$_GET['NumS']; else $nums="";
if(isset($_GET['NumT'])) $numt=$_GET['NumT']; else $numt="";
if(isset($_GET['NumC'])) $numc=$_GET['NumC']; else $numc="";


$req = "select article.NumArt, DesArt, PrixHT from article, composer where composer.NumArt = article.NumArt and article.NumS='$nums' or article.NumT='$numt' or composer.NumC='$numc' ;";
$resultat = mysql_query ($req);

while($data = mysql_fetch_array($resultat) or die(mysql_error()))
{
print ( $data['NumArt'] ) ;
}
0
Profil bloqué
5 oct. 2010 à 15:24
oui mais maintenant tu peu mettres t variables dans t'est IF
essaie :
$sql = "select article.NumArt, DesArt, PrixHT from article, composer where composer.NumArt = article.NumArt and article.NumS='$nums' or article.NumT='$numt' or composer.NumC='$numc' ;";

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
{
echo $data['NumArt'] ;
}

pense a afficher ta variable $req pour voir ce qui donne comme requet !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mon soucis est que lorsque l'utilisateur ne choisi qu'un paramètre (par exemple la couleur de l'article) les autres variables font planter ma requete :/
Je ne sais pas comment faire.
0