1) Essaye ca :
SELECT date FROM reservation
WHERE date >= "2004-05-18"
AND (poste1 = "nul"
OR poste2 = "nul"
OR poste3 = "nul"
OR poste4 = "nul"
OR poste5 = "nul"
OR poste6 = "nul"
OR poste7 = "nul"
OR poste8 = "nul"
OR poste9 = "nul"
OR poste10 = "nul")
ORDER BY date
2) cf 1)
3) Comment tu sais qu un poste est libre 3 heures ? (pour le moment, je comprend que les attributs postex disent si le poste est libre ou non, c'est ca ? ou bien est ce que quand postex=3, ben ca veut dire que le poste est libre 3 heures ?)
4) (RIGHT(CURDATE(),5)<RIGHT(birth,5))
En allant voir la page, j'ai retrouve cet exemple : le premier en fait.
Parce que cette phrase toute seule ne veut rien dire.
En revanche, l'ensemble complet :
mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
-> AS age
-> FROM pet;
La oui, ca veut dire quelque chose.
Le but de la requete c'est de calculer l'age d'une personne : Donc tu fais l'année d'aujourd hui moins l'année de naissance du gars.
Ensuite, tu compares la date du jour avec la date du jour de naissance de la personne (afin de savoir si tu dois ajouter une année ou non à l'age de la personne).
Donc pour résumer, pour le moment, tu as :
age = annee_today - annee_naissance.
Ensuite, tu fais un test qui va retourner 0 ou 1 sur le jour : RIGHT(CURDATE(),5)<RIGHT(birth,5) (en clair, si le jour d'aujourd hui est inferieur au jour de naissance, ce test retourne 1, dans le contraire il retourne 0).
Et au final, tu as donc :
age = annee_today - annee_naissance - 1 (ou 0 : tout depend du test sur le jour avec le signe <).