Date dans un INPUT

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Date dans un INPUT

par Tictac » 09 août 2006, 13:13

ce que je te conseille , c'est d'inclure AND YEAR(data_date) ='".$_POST['annee']."' ! Sinon , tu va avoir la semaine pour toutes les années ;)

par dunbar » 09 août 2006, 11:48

Génia et Merci beaucoup :lol:

par Tictac » 09 août 2006, 11:46

Voilà le code qui fonctionne pour retrouver les infos pour une semaine envoyé par $_POST
<?
//la requete pour récupérer les datas pour la semaine choisi "$_POST['semaine']"
$qry = mysql_query("SELECT * FROM data WHERE WEEKOFYEAR(data_date)='".$_POST['semaine']."'") or die (mysql_error());

echo mysql_num_rows($qry)."<br>";
while($data = mysql_fetch_assoc($qry))
	{
	echo "<li>".$data['data_txt']."</li>";
	}
?>
Ma table pour test =>

Code : Tout sélectionner

CREATE TABLE `data` ( `data_id` int(11) NOT NULL auto_increment, `data_date` date NOT NULL default '0000-00-00', `data_txt` varchar(255) NOT NULL default '', PRIMARY KEY (`data_id`) )

par dunbar » 09 août 2006, 11:07

Merci de me répeter Zeus , je pense qu'il avait pas vu mon post car on a du écrire un post en meme temps ;)

dunbar => 09 Aoû 2006, 09:23

Tictac => 09 Aoû 2006, 09:20
Oui effectivement merci également :wink:

par zeus » 09 août 2006, 11:06

Dans ta requete SQL, il suffit d'ajouter une clause WHERE dans laquelle tu compares le numéro de semaine fourni à la traduction de la date de la prestation en numéro de semaine ;)

par Tictac » 09 août 2006, 11:06

Merci de me répeter Zeus , je pense qu'il avait pas vu mon post car on a du écrire un post en meme temps ;)

dunbar => 09 Aoû 2006, 09:23

Tictac => 09 Aoû 2006, 09:20

par dunbar » 09 août 2006, 10:53

Et si, pour chaque prestation, tu stocke la date de création (comme indiqué plus haut) et lorsque tu veux les prestations par semaine, tu fait une requete qui traduit cette date en numéro de semaine ?

Regarde un peu ce lien (surtout DATE_FORMAT) : http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
:afraid: Euuuh oui effectivement c'est plus simple encore :wink: merci je ne connaissais pas.
Mais là me vient une autre question qui connait un bon tuto sur comment faire une recherche dans un tableau à partir d'un INPUT recherche
exemple l'utilisateur tape semaine 42 et le resultat serasi les encodages de la semaine 42 :lol:

par zeus » 09 août 2006, 10:47

Et si, pour chaque prestation, tu stocke la date de création (comme indiqué plus haut) et lorsque tu veux les prestations par semaine, tu fait une requete qui traduit cette date en numéro de semaine ?

Regarde un peu ce lien (surtout DATE_FORMAT) : http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html

par dunbar » 09 août 2006, 10:23

C'est souvent une mauvaise idée de stocker des données comme ça en base de données :-k

Les numéros de semaines sont très simple à obtenir et c'est souvent une erreur de les stocker.

Explique nous pourquoi tu veux ces numéros de semaines et comment tu comptes les utiliser ;)
Je veux les numéros de semaine pour pouvoir faire une recherche parsemaine de prestations dans un tableau, se qui me permet de ne plus devoir le faire par mois et avoir beaucoup moins de résultat.
Je compte faire ceci
<input name='Idate' type='text' value='<? echo date("d-m-Y") ?>'>
et mon fichier validation
list($jour,$mois,$annee) = explode('-',$_POST['Idate']);
$num_sem = date('W', mktime(0,0,0,$mois,$jour,$annee));
$query = 'INSERT INTO nomtable (semaine) VALUES ($num_sem);
Merci

par Tictac » 09 août 2006, 10:20

Je pense que le plus simple est que tu enregistre la date d'enregistrement c'est à dire créer dans ta TABLE un champ date_enregistrement
Quand tu enregistre tes données , pour ce champ tu mets NOW()

Tu auras donc la date exacte d'enregistrement et tu pourras en déduire la semaine via une requête.

Consulte ceci => http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
WEEKOFYEAR(date)

Retourne le numéro de semaine dans l'année, sous forme d'un nombre compris entre 1 et 53.

mysql> SELECT WEEKOFYEAR('1998-02-20');
-> 8

WEEKOFYEAR() est disponible depuis MySQL 4.1.1.

par zeus » 09 août 2006, 09:50

C'est souvent une mauvaise idée de stocker des données comme ça en base de données :-k

Les numéros de semaines sont très simple à obtenir et c'est souvent une erreur de les stocker.

Explique nous pourquoi tu veux ces numéros de semaines et comment tu comptes les utiliser ;)

par dunbar » 08 août 2006, 23:17

Ok, mais qu'est ce qui te pose problème ?
De faire en sorte que MySQL génére le numero de semaine d'après un enregistrement.

par iclo » 08 août 2006, 23:16

Ok, mais qu'est ce qui te pose problème ?

par dunbar » 08 août 2006, 23:14

Bonjour,

Pour ta première question : oui, tu peux générer automatiquement un formulaire en php, et affecter des valeurs par défaut à un input text en utilisant l'atribut value. Pour récupérer la date courante en php, tu as différentes fonctions, une petite recherche dans les tutoriaux, te renseignera sur le sujet.

Pour ta deuxième question, j'ai pas compris grand chose, il faudrait que tu expliques un peu plus.
Oui effectivement je ne me comprenais pas moi-même :lol: le but est de créer une TABLE numéro de semaine pour plus loin faire une recherche dans un TABLEAU par semaine et non plus par mois.
Donc je voudrais faire en sorte qu'un champs de TABLE reprenne les numéro de semaine de la semaine 1 à la semaine 52

Merci

par iclo » 08 août 2006, 23:11

Bonjour,

Pour ta première question : oui, tu peux générer automatiquement un formulaire en php, et affecter des valeurs par défaut à un input text en utilisant l'atribut value. Pour récupérer la date courante en php, tu as différentes fonctions, une petite recherche dans les tutoriaux, te renseignera sur le sujet.

Pour ta deuxième question, j'ai pas compris grand chose, il faudrait que tu expliques un peu plus.