[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
- Comment reduire la taille d'une photo - Guide
- Code telephone oublié - 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
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
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 159
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 159
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
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
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 159
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
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
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 159
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
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
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 159
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
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
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 159
11 avril 2006 à 21:18
11 avril 2006 à 21:18
je te tiens au courant demain
merci pour ton aide
merci pour ton aide