Pb requete code postal


bradeux
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 390
Inscription: 18 Mai 2005

Pb requete code postal

Message le Sam Jan 26, 2008 0:53

Slt à tous!

Je seche sur une requete php :oops:

Pour vous expliquer: j'ai 2 tables, une "produit" et une autre "membre".
Le but est d'afficher les produits des membres residant dans un département choisi et passé en variable dans l'url.

Dans la table membre, j'ai un champs code postal (de 5 chiffres).
Et dans la table produit, j'ai un "membre.id" qui me permet de faire la jonction avec la table membre.

mon problème est donc que je n'arrive pas à afficher les produits des membres résidant dans un déparement type 59 (puisque le code postal dans la table membre contient 5 chiffres type 59500) ...

Voici ma requete sql:
Code: Tout sélectionner
$_REQUEST["zip"]="59";
$zip=$_REQUEST["zip"];
$sql="select * from products INNER JOIN members ON products.membersid = members.id  where members.zip='$zip'";


une idée?

merci!!!

jidébé
WRInaute discret
WRInaute discret
 
Messages: 178
Inscription: 26 Juil 2005

Message le Sam Jan 26, 2008 1:44

Bonsoir,

Quelquechose comme ça:
Code: Tout sélectionner
$_REQUEST["zip"]="59";
$zip=$_REQUEST["zip"];
$sql="select * from products INNER JOIN members ON products.membersid = members.id  where LEFT(members.zip,2)='$zip'";


Jean-Denis


phpmikedu83
WRInaute passionné
WRInaute passionné
 
Messages: 1281
Inscription: 6 Aoû 2005

Message le Sam Jan 26, 2008 1:51

J'y mettrais plus un

Code: Tout sélectionner
members.zip LIKE '$zip%'


dans la condition mysql, pour une question de performances ;-)
Mais bon, c'est un détail...

ddpetit
WRInaute discret
WRInaute discret
 
Messages: 81
Inscription: 22 Fév 2006

Message le Sam Jan 26, 2008 7:07

As-tu essayé cela :
Code: Tout sélectionner
$_REQUEST["zip"]="59";
$zip=$_REQUEST["zip"];
$sql="select * from products WHERE products.membersid IN (SELECT members.id  FROM members WHERE members.zip='$zip')";


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8300
Inscription: 23 Nov 2005

Message le Sam Jan 26, 2008 9:53

ddpetit a écrit:As-tu essayé cela :
Code: Tout sélectionner
$_REQUEST["zip"]="59";
$zip=$_REQUEST["zip"];
$sql="select * from products WHERE products.membersid IN (SELECT members.id  FROM members WHERE members.zip='$zip')";


Et un petit mysql_real_escape_string($zip) ca serait pas mal pour la sécurité.


bradeux
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 390
Inscription: 18 Mai 2005

Message le Sam Jan 26, 2008 12:00

jidébé a écrit:Bonsoir,

Quelquechose comme ça:
Code: Tout sélectionner
$_REQUEST["zip"]="59";
$zip=$_REQUEST["zip"];
$sql="select * from products INNER JOIN members ON products.membersid = members.id  where LEFT(members.zip,2)='$zip'";


Jean-Denis


Parfait ca marche merci!

par contre comme j'ai 2 champs qui porte le mm nom ("id") et que j'ai fait une jonction, je n'arrive pas à distinguer les champs de products de ceux de members.

j'essai ca, mais ca ne me renvoi rien
Code: Tout sélectionner
$product_id=$rs0["products.id"];

jidébé
WRInaute discret
WRInaute discret
 
Messages: 178
Inscription: 26 Juil 2005

Message le Sam Jan 26, 2008 13:31

Bonjour,

Tu peux faire ça:
Code: Tout sélectionner
$_REQUEST["zip"]="59";
$zip=$_REQUEST["zip"];
$sql="select product.id AS produit, members.id AS membre from products INNER JOIN members ON products.membersid = members.id  where LEFT(members.zip,2)='mysql_real_escape_string($zip)'";


Et ensuite tu récupère les valeurs en utilisants les alias (produit ou membre), biensûr dans ce cas là il faut lister dans ta requète l'ensemble des champs que tu veux récupérer.

Jean-Denis


bradeux
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 390
Inscription: 18 Mai 2005

Message le Dim Jan 27, 2008 0:45

jidébé a écrit:Bonjour,

Tu peux faire ça:
Code: Tout sélectionner
$_REQUEST["zip"]="59";
$zip=$_REQUEST["zip"];
$sql="select product.id AS produit, members.id AS membre from products INNER JOIN members ON products.membersid = members.id  where LEFT(members.zip,2)='mysql_real_escape_string($zip)'";


Et ensuite tu récupère les valeurs en utilisants les alias (produit ou membre), biensûr dans ce cas là il faut lister dans ta requète l'ensemble des champs que tu veux récupérer.

Jean-Denis


Génial ca marche!
merci pour votre aide
++


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités