Bonjour, j'ai un problème avec un ORBER BY, je met la requête mysql avant l'explication:
Donc voilà, lorsque je veux trier les résultats par note ($order_by=note_video) j'ai un champ dans ma table nommé note_video qui contient la note de chaque vidéo sous cette forme: 15.66 ou encore 19...
Le problème c'est quand une note est inférieur à 10 par exemple 9.44 et bien celle-ci apparait en 1er résultat !!
Voic un exemple de ce que pourrait être les résultats d'une de mes requêtes:
9.548
18.55
17
16
16
15.25
11
10.16
J'ai l'impression que order by interprète les notes sans le point ce qui donne:
9548
1855
17
16
1525
11
1016
Mais il y a encore un problème dans ce cas: en effet 16 est plus petit que 1525 ???
Donc voilà, je ne sais plus quoi faire :euh:
J'ai déja une idée d'où vient le pb, le script qui enregistre les notes dans la base de donnée enregistre les chiffres décimaux avec un point, et non une virgule de plus mon champ note_video est en varchar(5) (deux chiffre . deux décimles).
Pour finir voici comment je calcul la note:
$total_vote est l'addition de toutes les valeurs des votes (15+14+1+20+3+45 ......)
$nbr_vote est le nombre de votants (1+1+1+1+1+1+1+1+1.....)
et $note finale est enregistrée dans la base de donné en varchar(5)
Donc voilà à peu près toutes les infos
Merci d'avance pour votre aide !
Code:
SELECT * FROM table WHERE acc='oui' AND ex='non' ORDER BY $order_by DESC LIMIT $1ermess, $nbrmess
Donc voilà, lorsque je veux trier les résultats par note ($order_by=note_video) j'ai un champ dans ma table nommé note_video qui contient la note de chaque vidéo sous cette forme: 15.66 ou encore 19...
Le problème c'est quand une note est inférieur à 10 par exemple 9.44 et bien celle-ci apparait en 1er résultat !!
Voic un exemple de ce que pourrait être les résultats d'une de mes requêtes:
9.548
18.55
17
16
16
15.25
11
10.16
J'ai l'impression que order by interprète les notes sans le point ce qui donne:
9548
1855
17
16
1525
11
1016
Mais il y a encore un problème dans ce cas: en effet 16 est plus petit que 1525 ???
Donc voilà, je ne sais plus quoi faire :euh:
J'ai déja une idée d'où vient le pb, le script qui enregistre les notes dans la base de donnée enregistre les chiffres décimaux avec un point, et non une virgule de plus mon champ note_video est en varchar(5) (deux chiffre . deux décimles).
Pour finir voici comment je calcul la note:
Code:
$note_final= $total_vote / $nbr_vote;
$total_vote est l'addition de toutes les valeurs des votes (15+14+1+20+3+45 ......)
$nbr_vote est le nombre de votants (1+1+1+1+1+1+1+1+1.....)
et $note finale est enregistrée dans la base de donné en varchar(5)
Donc voilà à peu près toutes les infos
Merci d'avance pour votre aide !