arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007
-
30 mars 2006 à 12:59
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007
-
30 mars 2006 à 14:42
Bonjour à tous,
J'ai une première table 'compteur_visite' qui enregistre des adresses ip.
J'ai une seconde table 'lh_membre' qui contient ip, nom et prenom d'un utilisateur.
Mon but : recuperer nom et prenom pour compteur_visite.ip=lh_membre.ip
Actuellement, je fais comme ça :
$req = mysql_query("SELECT ip FROM compteur_visite") or die(mysql_error());
(while $res = mysql_fetch_array($req)){
$req1 = mysql_query("SELECT ip,nom,prenom FROM lh_membre WHERE ip='$res['ip']'") or die(mysql_error());
(while $res1 = mysql_fetch_array($req1)){
echo $res1['nom'].' '.$res1['prenom'];
}
}
Ca fait de la boucle dans de la boucle mais ça fonctionne.
Comment je pourrais améliorer cette requête ?
krolenain
Messages postés149Date d'inscriptionlundi 7 février 2005StatutMembreDernière intervention 6 février 20091 30 mars 2006 à 13:31
ben la ca doit etre que tous tes membres et profs ont une ip correspondant a compteur_visite.ip .
Au passage tu feras attention, tu as deux fois lh_prof.prenom dans ton SELECT, ca ne cause pas de problème, juste que je pense que tu voulais mette membre.prenom a la fin.
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007 30 mars 2006 à 13:31
y'a une erreur dans la requête mais cela ne change rien pour autant SELECT lh_membre.ip, lh_prof.ip, lh_prof.nom, lh_prof.prenom, lh_membre.nom, lh_membre.prenom FROM lh_membre, lh_prof, compteur_visite WHERE lh_membre.ip compteur_visite.ip OR lh_prof.ip compteur_visite.ip
Vous n’avez pas trouvé la réponse que vous recherchez ?
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007 30 mars 2006 à 13:35
En fait dans lh_membre et lh_prof, tous les utilisateurs ont une ip = 0 tant qu'ils ne sont pas passés (remise à zéro de l'ip chaque 24 h).
Lorsqu'ils passent, l'ip est récupérée dans compteur_visite, lh_membre et lh_prof.
Je n'ai pourtant aucune ip = 0 dans compteur_visite. donc pourquoi ??
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 30 mars 2006 à 14:10
Bah, normal que ta requête ramène tout le monde, tu lui dis d'aller chercher les utilisateurs qui ont une ip, en gros...
Y a un soucis dans la structure de ta base, à mon sens. membres et prof n'ont pas de liens, donc tu ne peux pas aller chercher les deux à la fois de cette manière.
Soit tu crées une seule table membre, avec un champ distinctif : pro ou non. Voire, si c'est juste une question d'ip, ajouter à la table membre l'ip publique et l'ip pro, puis faire ta requête normalement.
Soit tu fais 2 requêtes, une pour les pro, une non.
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007 30 mars 2006 à 14:42
En fait, j'ai fait le C.. au départ. J'ai pas réfléchi à tout cela.
J'ai créé 2 tables lh_membre et lh_prof complètement identiques alors qu'il m'aurati suffit de rajouter un champ avec comme valeur 'prof' ou 'membre' et là, ça aurait été beaucoup plus simple.
A chaque fois, que j'effectue des requêtes, je suis obliger de chercher dans les 2 tables !
Bien fait pour moi !!!