Requête qui affiche le rang ou la position selon un critère
Résolu/Fermé
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
-
24 juil. 2020 à 10:52
jordane45 Messages postés 38112 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 mars 2024 - 25 juil. 2020 à 15:34
jordane45 Messages postés 38112 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 mars 2024 - 25 juil. 2020 à 15:34
A voir également:
- Requête qui affiche le rang ou la position selon un critère
- Le clavier de mon telephone ne s'affiche plus - Guide
- Ma position - Guide
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
- Faites en sorte que la cellule a1 affiche exactement ce qui est montré sur cette image. quel mot apparaît en b1 ? - Forum Excel
- Position gps - Guide
5 réponses
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
24 juil. 2020 à 11:01
24 juil. 2020 à 11:01
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
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
24 juil. 2020 à 11:58
24 juil. 2020 à 11:58
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;
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
24 juil. 2020 à 12:22
24 juil. 2020 à 12:22
Donc désormais, tu n'as plus l'erreur sur la variable $rang, qui, dans ton exemple, vaudra donc 0
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
24 juil. 2020 à 13:06
24 juil. 2020 à 13:06
Ton echo doit se trouver juste avant le if... Et en dessous du foreach
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
>
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
24 juil. 2020 à 13:46
24 juil. 2020 à 13:46
Quel echo? celui de $rang? ou ça
echo $D['idagent']; echo $idagent;?
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
>
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
24 juil. 2020 à 13:57
24 juil. 2020 à 13:57
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;
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
>
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
24 juil. 2020 à 14:34
24 juil. 2020 à 14:34
J'ai opté pour la proposition 2, mais il me renvoi '' 0 '', normalement il devait m'afficher la position de l'agent dans la base de données, je suis un peu largué
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
24 juil. 2020 à 12:54
24 juil. 2020 à 12:54
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
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
24 juil. 2020 à 22:35
24 juil. 2020 à 22:35
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;
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
Modifié le 25 juil. 2020 à 13:15
Modifié le 25 juil. 2020 à 13:15
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
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
>
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
25 juil. 2020 à 13:32
25 juil. 2020 à 13:32
Comment le code que je t'ai donné ou les variables se nomment idagent
Peuvent tu afficher ideleve... ?
à croire que tu n'es pas capable de copier-coller tu es lequel le code que je te donne....
Ou alors tu y fais des modifications mais je ne peux pas les deviner puisque tu ne les montres pas.
Peuvent tu afficher ideleve... ?
à croire que tu n'es pas capable de copier-coller tu es lequel le code que je te donne....
Ou alors tu y fais des modifications mais je ne peux pas les deviner puisque tu ne les montres pas.
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
>
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
25 juil. 2020 à 13:46
25 juil. 2020 à 13:46
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
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
>
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
25 juil. 2020 à 14:01
25 juil. 2020 à 14:01
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
modemo2018
Messages postés
231
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 octobre 2022
25 juil. 2020 à 15:06
25 juil. 2020 à 15:06
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
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
25 juil. 2020 à 15:34
25 juil. 2020 à 15:34
Sûrement qu'une de tes variables contient des espaces...