Script Php pour récupere n° de semaine dans une table

Script Php pour récupere n° de semaine dans une table - PHP - Programmation

Marsh Posté le 04-01-2011 à 21:51:59    

Bonjour,
 
j'ai besoin de votre aide, débutant en Php et MySQL, je souhaiterais obtenir à partir d'une table MySQL le numéro de la semaine courante (01 pour aujourd'hui par exemple) afin de l'insérer dans le champ d'un formulaire.
 
Ma table se présente comme ceci:
 

   
id_sem | semaine
________________
   1   |  01
   2   |  02
   3   |  03
   4   |  04
   5   |  05
  ...  |   ...
   52  |  52


 
Merci de votre aide :)


---------------
Last FM
Reply

Marsh Posté le 04-01-2011 à 21:51:59   

Reply

Marsh Posté le 04-01-2011 à 21:57:37    

Reply

Marsh Posté le 04-01-2011 à 22:44:51    

merci stealth35,
 
a t'on avis je peux écrire ça ?
 
SELECT id, semaine FROM ma_table where date('w') = semaine


Message édité par feer le 04-01-2011 à 22:45:04

---------------
Last FM
Reply

Marsh Posté le 04-01-2011 à 22:47:08    

oui avec réserve, regarde bien les options de semaine, par exemple la on est toujours en semaine 52
EDIT : non pardon on est bien en 01, mais samedi et dimanche on était toujours en 52


Message édité par stealth35 le 04-01-2011 à 22:48:42
Reply

Marsh Posté le 04-01-2011 à 22:51:14    

je viens d'essayer ma requête dans PhpMyAdmin, mais ça ne retourne aucun enregistrement

Reply

Marsh Posté le 04-01-2011 à 22:55:47    

feer a écrit :

je viens d'essayer ma requête dans PhpMyAdmin, mais ça ne retourne aucun enregistrement

 

normale c'est un date a la PHP que t'as fait, la fonction mysql c'est WEEK ou DATE_FORMAT, tout est dans le lien que je t'ai passé, pas besoin d'aller plus loin


Message édité par stealth35 le 04-01-2011 à 22:56:18
Reply

Marsh Posté le 04-01-2011 à 23:04:23    

oui en effet !

Code :
  1. SELECT id, semaine FROM ma_table week(curdate()) = semaine

fonctionne !
 
merci :)

Reply

Marsh Posté le 05-01-2011 à 11:49:22    

Euh ... ça sert à quoi une table où l'ID 28 correspond à la semaine 28, l'ID 32 à la semaine 32 etc ? :??:


Message édité par Dj YeLL le 05-01-2011 à 11:49:26

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 05-01-2011 à 11:57:54    

a faire un select sur le champ "semaine"

Reply

Marsh Posté le 05-01-2011 à 12:00:33    

Oui mais dans quel but ?
 
Faire  ça :
 

Code :
  1. SELECT id, semaine FROM ma_table WHERE week(curdate()) = semaine


 
Ca revient à faire ça (en gros) :
 

Code :
  1. SELECT week(curdate())


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 05-01-2011 à 12:00:33   

Reply

Marsh Posté le 05-01-2011 à 12:04:13    

oui c'est juste, je ne crois pas l'avoir précisé, je souhaite aussi conserver la possibilité de sélectionner un autre numéro de semaine au travers d'un champ select :)

Reply

Marsh Posté le 05-01-2011 à 13:04:40    

Non mais ça ne change rien... pour sélectionner la semaine 38 ... il faut que tu connaisses déjà le numéro de la semaine...
 
Même si on est en semaine 12 et que tu veux la semaine tartenpion ... ben c'est que tu fais un SELECT sur la semaine tartenpion ...
 
Enfin non, vraiment, je ne vois pas la logique là ... y'a un truc qui m'échappe.


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 05-01-2011 à 13:46:24    

désolé je ne comprends pas ce que tu veux dire, mais ne m'en veux pas pas, comme je l'ai dit + haut, je n'ai que très peu de connaissance en Php/MySQL

Reply

Marsh Posté le 05-01-2011 à 13:50:19    

Il dit que ta table MySQL ne sert à rien (et vu la tête qu'elle a, en effet, elle sert à rien).
Toi ce que tu veux c'est un code qui te dit le numéro de semaine dans laquelle se trouve (par exemple) le 13 avril 2011 ? C'est ça?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 05-01-2011 à 13:53:36    

Attention, WEEK dépend des param locaux du serveur car la notion de semaine varie selon les pays (pour certains ça commence dimanche par exemple).
 
Le deuxième param de la fonction WEEK permet de fixer cette définition pour le moins fluctuante.


Message édité par smaragdus le 05-01-2011 à 13:54:03
Reply

Marsh Posté le 05-01-2011 à 15:05:48    

esox_ch a écrit :


Toi ce que tu veux c'est un code qui te dit le numéro de semaine dans laquelle se trouve (par exemple) le 13 avril 2011 ? C'est ça?


 
non, pas seulement, voir plus haut

Reply

Marsh Posté le 05-01-2011 à 15:13:40    

Oui ça j'ai compris, mais tu dis "sélectionner un autre numéro de semaine" ... à partir de quoi? D'une autre date (p.ex le 23 août 2012) ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 05-01-2011 à 15:37:32    

esox_ch a écrit :

Oui ça j'ai compris, mais tu dis "sélectionner un autre numéro de semaine" ... à partir de quoi?


 
D'une table justement ;)

Reply

Marsh Posté le 05-01-2011 à 15:39:45    

Tu le fais exprès ou bien? Je m'en fou de savoir d'où tu sors tes données, je te demande (voir message précédent) qu'est-ce que c'est ces données?? Une date? Autre chose?
Bordel on n'est ni à côté de toi, ni voyants, comment veux-tu qu'on t'aide si on doit se battre pour que tu nous donnes des informations utiles?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 05-01-2011 à 15:53:03    

esox_ch a écrit :

Tu le fais exprès ou bien? Je m'en fou de savoir d'où tu sors tes données, je te demande (voir message précédent) qu'est-ce que c'est ces données?? Une date? Autre chose?
Bordel on n'est ni à côté de toi, ni voyants, comment veux-tu qu'on t'aide si on doit se battre pour que tu nous donnes des informations utiles?


 
Houla, tu m'as l'air bien remonté toi, vas-y respire, détend toi mon grand, je pensais avoir donné suffisement d'informations pour exposer mon probleme.
Tu ne pardonnes pas mon inculture en la matière ? Tant pis et d'ailleurs j'aime autant me priver de la solution que de perdre mon temps a échanger avec un hystérique.
 
+_+

Reply

Marsh Posté le 05-01-2011 à 17:21:13    

Il n'a pas totalement tort, voir ça tous les jours, c'est un peu fatiguant à force.
 
Tu as une table, avec une correspondance 1:1 ... Aucun intérêt.
 
En gros, ça revient à faire SELECT 28 FROM table WHERE champ = 28...
 
Donc à la base, tu le connais déjà ton 28, aucun intérêt d'avoir une base en 1:1


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 05-01-2011 à 19:13:19    

Tu as sans doute raison, une table n'est peut-être pas indispensable et je ne demande qu'à te croire.
 
Alors je le refais différemment, peux-tu m'expliquer par quel moyen tu peux afficher/proposer dans un formulaire au travers d'un menu déroulant les 52 semaines de l'année ET afficher par défaut le numéro de la semaine courante ?

Reply

Marsh Posté le 05-01-2011 à 20:43:56    

une boucle qui par de 1 jusqu'à 52...

Reply

Marsh Posté le 05-01-2011 à 21:29:09    

éventuellement si c'est pour renseigner une zone de choix de la semaine par rapport aux semaines présentes dans la base, tu le feras avec  
select distinct(week(matable.date)) from matable where year(matable.date)=curryear  
ou un truc du genre, je ne pense pas que la syntaxe soit bonne.
Où matable est une table qui contient les données à afficher, pas une table avec des codes de semaines.
 
Sinon tu renseignes cette zone par une boucle en php, de 1 à 52, et tu mets selected (ou un truc du genre) sur celle qui est la semaine courante.
Je ne peux pas te l'écrire je n'ai pas la syntaxe de php en tête mais ça ne doit pas être bien dur à trouver.


Message édité par gzii le 05-01-2011 à 21:30:45
Reply

Marsh Posté le 06-01-2011 à 09:46:39    

Note 1 : le numéro de la semaine va de 1 à 53 (et pas 52 comme écrit plus haut)
 
Note 2 : echo date('W') sort le numéro de la semaine en PHP à la norme ISO-8601 (internationale) c'est à dire que la semaine commence le lundi et la semaine 1 est celle qui contient le premier jeudi de l'année.
 
Petit extrait de WP car on voit un nombre important d'erreur de codage sur les date en général et sur cette notion en particulier  

Citation :

La semaine 1 est la première à contenir la majorité de ses jours (au moins 4 jours) dans l'année. Elle contient systématiquement le 4 janvier. C'est aussi celle dont le lundi est le plus proche du jour de l'an. Elle commence au plus tôt le 29 décembre ou au plus tard le 4 janvier.
 
La dernière semaine de l'année (52 ou 53) est celle qui contient le dernier jeudi de l'année. Elle est la dernière à avoir la majorité de ses jours (au moins 4) dans l'année et contient systématiquement le 28 décembre. C'est aussi celle dont le dimanche est le plus proche du 31 décembre. Elle termine au plus tôt le 28 décembre ou au plus tard le 3 janvier.


Message édité par smaragdus le 06-01-2011 à 09:47:55
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed