Help please pour requete between and and

Fermé
procrastinateuse Messages postés 2 Date d'inscription samedi 23 juin 2012 Statut Membre Dernière intervention 23 juin 2012 - 23 juin 2012 à 10:14
jee pee Messages postés 40558 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 décembre 2024 - 23 juin 2012 à 12:08
Bonjour,

Voila le cénario , les éleves de la classe peuvent se connécté, une fois connécté
je recupère leur note en math par les session,
ensuite il peut rechercher tous les éleves ayant une note en math de -20 sa note math et +20 sa note de math, ET qui ont aussi eu une note en philo entre -20 sa note de philo et + 20 sa note de philo ;
(je n'ai pas trouvé de fonction qui charcherait dans " un range de note " ou " autour de ")

Donc voila mon code, je pense que la logique est bonne mais il y a des fautes de mise en forme..

Avant je recupere par les session

$note_math_recup et
$note_philo_recup

de l'éleve connécté .



$requete= "SELECT * FROM noteeleve WHERE math between (('$note_math_recup'+'20')
AND ('$note_math_recup'-'20')) AND WHERE philo between (('$note_philo_recup'+'20')
AND ('$note_philo_recup'-'20'))"
;

$resultat= mysql_query($requete) ; ?>

<?php

echo print_r($resultat);


while($res=mysql_fetch_array($resultat) ) { ?>
<?php echo $res['prenom'] ; ?>
<?php } ?>



Si vous pouviez me filer un coup de main pour y voire plus claire..
merci,

jessica

3 réponses

jee pee Messages postés 40558 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 décembre 2024 9 459
23 juin 2012 à 11:03
Salut,

Tu n'as pas indiqué quel est clairement ton problème.

Une réponse incorrecte, une erreur, il ne se passe rien ???

Tu n'as pas non plus donné avec quel sgbd tu travailles. Ça conditionne les possibilités du sql.

Une observation toutefois, dans un ordre select le WHERE ne devrait apparaitre qu'une seule fois.

Donc WHERE a BETWEEN 1 AND 3 AND b BETWEEN 5 AND 9

cdlt
0
procrastinateuse Messages postés 2 Date d'inscription samedi 23 juin 2012 Statut Membre Dernière intervention 23 juin 2012
23 juin 2012 à 11:47
cest mysql , inodb

Il ne se passe rien, je crois que cest une erreur de sintaxe cela dit,
jai apporté tes modifs mais ca ne change rien.. :

$requete= "SELECT * FROM noteeleve WHERE math between (('$note_math_recup'+'20')
AND ('$note_math_recup'-'20')) AND philo between (('$note_philo_recup'+'20')
AND ('$note_philo_recup'-'20'))"
0
jee pee Messages postés 40558 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 décembre 2024 9 459
Modifié par jee pee le 23/06/2012 à 12:09
Je ne connais ni php ni mysql

Si c'est une erreur de syntaxe et que ton code ne le teste pas ce n'est pas terrible. Remplace WHERE par WHE pour voir. Si tu n'as pas d'erreur signalée il faudrait que tu améliores le code pour récupérer les messages d'anomalies.

Quand on programme il faut toujours intercepter les erreurs.

Dans mysql il n'y a pas possibilité de saisir un script sql, dans un outil quelconque, pour l'exécuter immédiatement ?

Tu pourrais alors tester ton sql en dehors de php pour valider la syntaxe.

Ou alors mets tout en dur dans php pour un test, ex :

SELECT * FROM noteeleve
WHERE (math between 1 AND 100) AND (philo between 1 AND 100)


Cela te permettra de diagnostiquer un problème de syntaxe sql ou un problème de syntaxe php

Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0