|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() André OrtaisWebmarketer Inscription : août 2006 Messages : 11 ![]() |
Bonjour,
J'ai un menu qui lance une requête en fonction de la région sur laquelle on clique. Au clic s'affichent les entreprises de la région en question. Certaines régions n'affichent pas leurs résultats et d'autres qui affichent ne montrent pas tous leurs résultats. Je cherche depuis deux jours et sans trouver de réponse. Quelqu'un aurait une idée du problème ? Merci. Voici la requête du menu : Code :
Code :
Merci |
||||
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : mai 2010 Messages : 45 ![]() |
Bonjour,
Je ne connais pas le fonctionnement des fonctions mais elles me semblent suffisamment explicites pour répondre. - Sur le deuxième code, il semble qu'une itération soit faite pour obtenir la région, ce qui me semble incorrect, il vaut mieux se baser sur la variable $gurl ( après l'avoir vérifiée bien sûr, pour éviter tout risque d'injection ). Du coup quand le while commence, un premier résultat a déjà été lu, il doit donc manquer à l'appel. Sinon que donnent les requêtes exécutées directement dans un outil sql? |
|
|
20
|
|
|
#3 |
|
Membre régulier
![]() Inscription : juin 2008 Messages : 105 ![]() |
Salut, à première vue, dans la partie
Code :
$res=ExecRequete("SELECT SQL_SMALL_RESULT id,h1,contenu,url,region FROM BCP_artisans WHERE region='$gurl'",$con) Code :
$res=ExecRequete("SELECT SQL_SMALL_RESULT id,h1,contenu,url,region FROM BCP_artisans WHERE region=".$gurl,$con) |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() André OrtaisWebmarketer Inscription : août 2006 Messages : 11 ![]() |
Bonjour,
Merci pour vos réponses. Tu sembles avoir raison nonolagalinette, en passant la requête directement dans MySql, j'ai toujours un résultat de plus que sur ma page. Les régions vides ne sont vides que parce que je n'ai qu'un résultat. En revanche tu me dis de ne pas faire d'itération mais d'utiliser la variable $gurl. Pourrais-tu m'expliquer ? Merci encore. |
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() Inscription : mai 2010 Messages : 45 ![]() |
Apparemment ton paramètre $gurl contient justement la région à afficher, il est donc inutile de demander au serveur quelles sont les lignes dont 'region' est egal à 'region' pour afficher la colonne 'region'
En fait je dis qu'il ne faut pas faire d'itération pour récupérer la région, car ainsi tu commence à lire les résultats à partir du deuxième. Je m'explique : Apparemment ta fonction ObjetSuivant est un curseur. Elle prends en paramètre la requête et le curseur se place au premier résultat. Au premier appel de la fonction : La fonction renvoie la première ligne, puis le curseur se place sur le deuxième résultat Au second appel : La fonction renvoie la deuxième ligne, puis le curseur se place sur le troisième résultat etc. Or, à la ligne 8 de ton code, la fonction en est à son deuxième appel, elle renvoie donc le deuxième résultat de ta requête ( ou rien si la requête n'a qu'un résultat ). En fait la valeur que tu cherche pour la region est déjà dans ta variable $gurl. Il suffit donc de remplacer les lignes 3 à 7 de ton code par : Code :
|
||
|
|
20
|
|
|
#6 |
|
Invité régulier
![]() André OrtaisWebmarketer Inscription : août 2006 Messages : 11 ![]() |
Excellent nonolagalinette, j'ai compris !
Ça marche parfaitement et ça lit tous mes résultats. Merci pour ton aide précieuse. |
|
00
|
Copyright © 2000-2012 - www.developpez.com