[MYSQL/PHP] Comment réduire ce code
Fermé
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
-
11 avril 2006 à 16:23
antic80 Messages postés 4785 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 - 11 avril 2006 à 21:18
antic80 Messages postés 4785 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 - 11 avril 2006 à 21:18
A voir également:
- [MYSQL/PHP] Comment réduire ce code
- Comment réduire la taille d'un fichier - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Reduire taille photo - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
9 réponses
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
11 avril 2006 à 16:30
11 avril 2006 à 16:30
Bonjour!
il me semble que ça marcherait
Mais c'est à tester!
il me semble que ça marcherait
SELECT COUNT(*) FROM apprenant WHERE Classe='$Liste' and (Note1 <= '5' or Note2 <= '5' or Note3 <= '5' or Note4 <= '5' or Note5 <= '5' or Note6 <= '5' or Note7 <= '5' or Note8 <= '5' )
Mais c'est à tester!
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
11 avril 2006 à 16:34
11 avril 2006 à 16:34
Salut,
Avec uen boucle et un tableau de resultats:
De $result[1] à $result[8] tu as tes resultats.
En fait le soucis avec ta requête maily, c'est que le count rassemblera le nombre de resultats inférieurs à 5 pour toutes les notes confondues.
J'ai pensé à un group by mais je ne crois aps que ça soit faisable ici.
Avec uen boucle et un tableau de resultats:
for($i=1; $i<9;$i++) { $rq="SELECT COUNT(*) FROM apprenant WHERE Classe='$Liste' and Note$i <= '5' "; $res=mysql_query($rq); $result[$i]=mysql_result($rq,0); }
De $result[1] à $result[8] tu as tes resultats.
En fait le soucis avec ta requête maily, c'est que le count rassemblera le nombre de resultats inférieurs à 5 pour toutes les notes confondues.
J'ai pensé à un group by mais je ne crois aps que ça soit faisable ici.
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 161
11 avril 2006 à 16:35
11 avril 2006 à 16:35
mais comment afficher le resultat en séparer car j'aimerai obtenir
Note inférieur a 5
Note 1 : ...
Note 2 : ...
etc...
.... etant le nombre pour chaque note
Note inférieur a 5
Note 1 : ...
Note 2 : ...
etc...
.... etant le nombre pour chaque note
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
11 avril 2006 à 16:37
11 avril 2006 à 16:37
La réponse de Kilian répond à ta question.
A chaque passage dans la boucle, tu affiches le résultat de la requête!
A chaque passage dans la boucle, tu affiches le résultat de la requête!
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 161
11 avril 2006 à 16:42
11 avril 2006 à 16:42
bon alors j'ai essayer de remettre par rapport a ce que j'ai le bout de code de killian
mais j'obtient comme resultat
ArrayArrayArrayArray....
pourquoi
for($i=1; $i<9;$i++) { $rq="SELECT COUNT(*) FROM apprenant WHERE Classe='$Liste' and Note$i <= '5' "; $res=mysql_query($rq)or die('Erreur SQL !<br>'.$rq.'<br>'.mysql_error()); $result[$i]=mysql_fetch_row($res); echo $result[$i]; }
mais j'obtient comme resultat
ArrayArrayArrayArray....
pourquoi
matt22
Messages postés
3
Date d'inscription
dimanche 27 janvier 2002
Statut
Membre
Dernière intervention
11 avril 2006
11 avril 2006 à 16:51
11 avril 2006 à 16:51
moi je modifierais un peu :
for($i=1; $i<9;$i++)
{
$Note="Note".$i;
$rq="SELECT COUNT(*) FROM apprenant WHERE Classe='$Liste' and $Note <= '5' ";
$res=mysql_query($rq)or die('Erreur SQL !<br>'.$rq.'<br>'.mysql_error());
while ($note = mysql_fetch_array($req))
echo "note=".$note->[$Note];
}
Mais bon pareil c à tester...
for($i=1; $i<9;$i++)
{
$Note="Note".$i;
$rq="SELECT COUNT(*) FROM apprenant WHERE Classe='$Liste' and $Note <= '5' ";
$res=mysql_query($rq)or die('Erreur SQL !<br>'.$rq.'<br>'.mysql_error());
while ($note = mysql_fetch_array($req))
echo "note=".$note->[$Note];
}
Mais bon pareil c à tester...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
11 avril 2006 à 16:45
11 avril 2006 à 16:45
Oui parce que tu utilises mysql_fetch_row qui renvoie un tableau et non pas le résultat directement, c'est pour ça que j'ai pris mysql_result.
Pas de soucis, change juste deux lignes pour chercher ta valeur dans le tableau:
Pas de soucis, change juste deux lignes pour chercher ta valeur dans le tableau:
for($i=1; $i<9;$i++) { $rq="SELECT COUNT(*) FROM apprenant WHERE Classe='$Liste' and Note$i <= '5' "; $res=mysql_query($rq)or die('Erreur SQL !<br>'.$rq.'<br>'.mysql_error()); $result=mysql_fetch_row($res); echo $result[0]; }
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 161
11 avril 2006 à 16:48
11 avril 2006 à 16:48
en fait j'avais mis mysql_fetch_row car avec mysql_result j'avais un message d'erreur
Warning: Wrong parameter count for mysql_result() in /home/lyceebai/www/Spip/Satisfaction/StatApprenant.php on line 62
que ve dire cette erreur ??
sinon maintenant ca marche nickel
Warning: Wrong parameter count for mysql_result() in /home/lyceebai/www/Spip/Satisfaction/StatApprenant.php on line 62
que ve dire cette erreur ??
sinon maintenant ca marche nickel
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
11 avril 2006 à 16:55
11 avril 2006 à 16:55
que ve dire cette erreur ??
Je m'étais gourré, c'était
et non pas
Je m'étais gourré, c'était
mysql_result($res,0);
et non pas
mysql_result($rq,0);
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 161
11 avril 2006 à 16:57
11 avril 2006 à 16:57
j'aimerai aussi adapter ce code a a un autre morceau de code
j'aimerai par exemple avoir pour la 1ere Note
echo "Accueil : ".$data3[1] ." ". ici;
a la place de ici j'aimerai mettre le nombre de fois que la note 1 est inférieur a 5
et pareil pour les autres lignes
echo "Accueil : ".$data3[1]; echo "<br />"; echo "Information et communication interne : ".$data3[2]; echo "<br />"; echo "Equipements pédagogiques : ".$data3[3]; echo "<br />"; echo "Locaux : ".$data3[4]; echo "<br />"; echo "Qualité de formation : ".$data3[5]; echo "<br />"; echo "Hébergement et Restauration : ".$data3[6]; echo "<br />"; echo "Aide à l'insertion Professionnelle : ".$data3[7]; echo "<br />"; echo "Prestations offertes par l'établissements (foyer, sorties pédagogiques, voyages, visites, etc.) : ".$data3[8]; echo "<br />"; echo "<br />";
j'aimerai par exemple avoir pour la 1ere Note
echo "Accueil : ".$data3[1] ." ". ici;
a la place de ici j'aimerai mettre le nombre de fois que la note 1 est inférieur a 5
et pareil pour les autres lignes
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
11 avril 2006 à 16:59
11 avril 2006 à 16:59
En ce cas, tu stockes les infos dans un tableau au lieu de les afficher directement:
Puis à la suite tu mets ton code.
for($i=1; $i<9;$i++) { $rq="SELECT COUNT(*) FROM apprenant WHERE Classe='$Liste' and Note$i <= '5' "; $res=mysql_query($rq)or die('Erreur SQL !<br>'.$rq.'<br>'.mysql_error()); $data3[$i]=mysql_result($res,0); }
Puis à la suite tu mets ton code.
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 161
11 avril 2006 à 17:32
11 avril 2006 à 17:32
ok je verrais ca demain
mais ce morceau de code me renvoie une erreur celle que j'ai cité plus haut
$data3[$i]=mysql_result($res,0);
mais ce morceau de code me renvoie une erreur celle que j'ai cité plus haut
$data3[$i]=mysql_result($res,0);
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
11 avril 2006 à 20:18
11 avril 2006 à 20:18
Ah? Bizzare. Ben sinon, tu peux passer par mysql_fetch_row.
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 161
11 avril 2006 à 21:18
11 avril 2006 à 21:18
je te tiens au courant demain
merci pour ton aide
merci pour ton aide