Pb requete code postal

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


bradeux
WRInaute impliqué
WRInaute impliqué
 
Messages: 385
Inscription: Mer Mai 18, 2005 12:51

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 occasionnel
WRInaute occasionnel
 
Messages: 160
Inscription: Mar Juil 26, 2005 22:24

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 accro
WRInaute accro
 
Messages: 1281
Inscription: Sam Aoû 06, 2005 7:34

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: 64
Inscription: Mer Fév 22, 2006 14:20

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: 5175
Inscription: Mer Nov 23, 2005 10:38

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 impliqué
WRInaute impliqué
 
Messages: 385
Inscription: Mer Mai 18, 2005 12:51

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 occasionnel
WRInaute occasionnel
 
Messages: 160
Inscription: Mar Juil 26, 2005 22:24

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 impliqué
WRInaute impliqué
 
Messages: 385
Inscription: Mer Mai 18, 2005 12:51

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
++


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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