Requête qui affiche le rang ou la position selon un critère
Résolu
modemo2018
Messages postés
226
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38480 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38480 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Requête qui affiche le rang ou la position selon un critère
- Ma position - Guide
- Le clavier de mon telephone ne s'affiche plus - Guide
- Suivi position google - Guide
- Position gps - Guide
- Position whatsapp - Guide
5 réponses
Bonjour,
Tu es sûr que c'est $ideleve ?
Et puis, ce n'est pas dûr à vérifier...
fais un echo de tes deux variables ( juste avant ton if )
et puis, à la limite, avant ton foreach,
fais nous donc un print_r de ta variable $donnees
Tu es sûr que c'est $ideleve ?
Et puis, ce n'est pas dûr à vérifier...
fais un echo de tes deux variables ( juste avant ton if )
echo "<br>D_ideleve : " . $D['ideleve']; echo "<br>ideleve : " . $ideleve; if($D['ideleve'] == $ideleve){
et puis, à la limite, avant ton foreach,
fais nous donc un print_r de ta variable $donnees
c'est
voici ce que affiche le
" Array ( [0] => Array ( [moyene] => 10.9357 [class] => 2nd [cycle] => PRO [idagent] => 4 [iduser] => 1 [serie] => A [genre] => HOMME [mois] => juillet [an] => 2020 [date] => 06/09/2018 [statut] => OUI ) )
4 4 ""
Les 4 4 c'est que m'affiche
if($D['idagent'] == $idagent ), une erreur de ma part que j'ai corrigé
if(!empty($donnees)){ print_r($donnees); // le temps des tests ! echo $D['idagent']; echo $idagent; foreach($donnees as $j=>$D){ if($D['idagent'] == $idagent){ $rang= $i; $donnees =''; break; } $i++; } } echo $rang;
voici ce que affiche le
print_r($donnees);:
" Array ( [0] => Array ( [moyene] => 10.9357 [class] => 2nd [cycle] => PRO [idagent] => 4 [iduser] => 1 [serie] => A [genre] => HOMME [mois] => juillet [an] => 2020 [date] => 06/09/2018 [statut] => OUI ) )
4 4 ""
Les 4 4 c'est que m'affiche
echo $D['idagent']; echo $idagent;
Un peu de logique ne te ferait pas de mal .. et relire ton code également... à ton avis ?
$D .. il existe avant le foreach ???
Merci de tester ceci :
Mais bon.. tu pourrais te passer d'incrémenter la variable $i et utiliser directement $j
tu pourrais aussi écrire ton code un peu différement, en créant un array associatif
$D .. il existe avant le foreach ???
Merci de tester ceci :
if(!empty($donnees)){ print_r($donnees); // le temps des tests ! foreach($donnees as $j=>$D){ echo "<br>D_idagent : " . $D['idagent']; echo "<br>idagent : " . $idagent; if($D['idagent'] == $idagent){ $rang= $i; $donnees =''; break; } $i++; } } echo !empty($rang) ? $rang : 0;
Mais bon.. tu pourrais te passer d'incrémenter la variable $i et utiliser directement $j
if(!empty($donnees)){ print_r($donnees); // le temps des tests ! foreach($donnees as $j=>$D){ echo "<br>D_idagent : " . $D['idagent']; echo "<br>idagent : " . $idagent; if($D['idagent'] == $idagent){ $rang= $j; $donnees =''; break; } } } echo !empty($rang) ? $rang : 0;
tu pourrais aussi écrire ton code un peu différement, en créant un array associatif
$arrAgents = array(); if(!empty($donnees)){ foreach($donnees as $j=>$D){ $arrAgents[$D['idagent']] = $D; $arrAgents[$D['idagent']]['rang'] = $j; } } echo !empty($arrAgents[$idagent]['rang']) ? $arrAgents[$idagent]['rang'] : 0;
En ce qui concerne la variable $rang, j'ai toujours la même erreur :
Undefined variable: rang in /Applications/MAMP/htdocs/kela/note1.php on line 630
Ce que je n'arrive pas à comprendre pourquoi la boucle
mais pourquoi il n'accède pas à la boucle IF
Undefined variable: rang in /Applications/MAMP/htdocs/kela/note1.php on line 630
Ce que je n'arrive pas à comprendre pourquoi la boucle
if($D['idagent'] == $idagent){car le print_r($donnees); me montre bel et bien que la variable $donnees n'est pas vide donc forcement il exécute
foreach($donnees as $j=>$D){
mais pourquoi il n'accède pas à la boucle IF
Tiens,
voila, par exemple, comment essayer de débuguer ton programme :
voila, par exemple, comment essayer de débuguer ton programme :
if(!empty($donnees)){ print_r($donnees); // le temps des tests ! echo "<br> Nombre de résultats retournés par ma requête " . count($donnees); foreach($donnees as $j=>$D){ if($D['idagent'] == $idagent){ $rang = $j + 1 ; echo " <br> ^\o/^ Je suis bien entré dans le IF (mes variables sont identiques) et la variable rang vaut : " . $rang; break; }else{ echo "<br> Mes variables sont différentes"; echo "<br>D_idagent : " . $D['idagent']; echo "<br>idagent : " . $idagent; } } }else{ echo "<bt> Aucune donnée retournée par la requête !"; } echo "<br>, et donc, maintenant, rang vaut : "; echo !empty($rang) ? $rang : 0;
Merci pour la proposition, je confirme bel et bien que la condition IF ne s'execute pas, voici ce qui s'affiche quand j'execute le code:
Nombre de résultats retournés par ma requête 3
Mes variables sont différentes
D_ideleve : 3
ideleve : 4
Mes variables sont différentes
D_ideleve : 3
ideleve : 4
Mes variables sont différentes
D_ideleve : 4
ideleve : 4
, et donc, maintenant, rang vaut : 0
Finalement comment faire?SVP existe t-il une manière d'écrire une requête SQL PDO (comme par exemple avec la fonction ORDER BY)qui permet de determiner le rang ou la position suivant un critère
Nombre de résultats retournés par ma requête 3
Mes variables sont différentes
D_ideleve : 3
ideleve : 4
Mes variables sont différentes
D_ideleve : 3
ideleve : 4
Mes variables sont différentes
D_ideleve : 4
ideleve : 4
, et donc, maintenant, rang vaut : 0
Finalement comment faire?SVP existe t-il une manière d'écrire une requête SQL PDO (comme par exemple avec la fonction ORDER BY)qui permet de determiner le rang ou la position suivant un critère
Non, une erreur de ma part , en fait je travaille à deux projet , partout je dois affiché la position des agents ou des élève et j'ai le même problème, donc je copie et je colle dans les deux cas:
D_agent : 3
agent : 4
Mes variables sont différentes
D_agent : 3
agent : 4
Mes variables sont différentes
D_agent : 4
agent : 4
, et donc, maintenant, rang vaut : 0
D_agent : 3
agent : 4
Mes variables sont différentes
D_agent : 3
agent : 4
Mes variables sont différentes
D_agent : 4
agent : 4
, et donc, maintenant, rang vaut : 0
Il y a un truc étrange...
à mon avis, il y a un souci sur tes variables.
Peux tu essayer ce code et nous montrer ce que ça t'affiche
à mon avis, il y a un souci sur tes variables.
Peux tu essayer ce code et nous montrer ce que ça t'affiche
if(!empty($donnees)){ print_r($donnees); // le temps des tests ! echo "<br> Nombre de résultats retournés par ma requête " . count($donnees); foreach($donnees as $j=>$D){ if(intval($D['idagent']) == intval($idagent)) { $rang = $j + 1 ; echo " <br> ^\o/^ Je suis bien entré dans le IF (mes variables sont identiques) et la variable rang vaut : " . $rang; break; }else{ echo "<br> Mes variables sont différentes"; echo "<br>D_idagent : " ; var_dump($D['idagent']); echo "<br>idagent : " ; var_dump($idagent); } } }else{ echo "<bt> Aucune donnée retournée par la requête !"; } echo "<br>, et donc, maintenant, rang vaut : "; echo !empty($rang) ? $rang : 0;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hourra!! je pense que ça marche maintenant, car voici ce qu'il m'affiche:
Nombre de résultats retournés par ma requête 2
^\o/^ Je suis bien entré dans le IF (mes variables sont identiques) et la variable rang vaut : 1
, et donc, maintenant, rang vaut : 1
Je me demande quel etait le problème? Pouvez-vous svp me faire un résumé de ce que vous avez fait pour aider à mieux comprendre car ça été un casse-tête pour moi
Nombre de résultats retournés par ma requête 2
^\o/^ Je suis bien entré dans le IF (mes variables sont identiques) et la variable rang vaut : 1
, et donc, maintenant, rang vaut : 1
Je me demande quel etait le problème? Pouvez-vous svp me faire un résumé de ce que vous avez fait pour aider à mieux comprendre car ça été un casse-tête pour moi