begin process at 2012 05 31 17:15:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Récuperer dates Mysql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récuperer dates Mysql

mercredi 2 mars 2005 à 10:06:24 | Récuperer dates Mysql

infosub

Bonjour,

Je recupere deux dates d'un formulaire sur une BDD Mysql "date_a "et "date_b" (par exemple 05/03/2005 et 09/05/2005 ou en format different).

Est-il possible de les recuperer en affichant un tableau  avec les  jours compris entre les deux dates?

Ou encore mieux, peut-on récuperer ces jours en couleur different sur un calendrier annuel ?

Vaut-il mieux recuperer les dates en format anglais pour le traitement de Mysql ?

Avec quel type de requette on peut faire ça ?

Je ne suis pas une bête dans la programation !!

Merci

Rafael
mercredi 2 mars 2005 à 23:50:52 | Re : Récuperer dates Mysql

LaurentKOogar

Slt,

Tout est possible :) mais perso j'ai pas de script de calendrier a dispo
Si ca peux t'aider:
[ Lien ]


Laurent
www.phpsources.org
jeudi 3 mars 2005 à 00:23:47 | Re : Récuperer dates Mysql

JeanPoldeux

Membre Club
Avant toute chose, sache que MySQL traite les dates au format 'aaaa-mm-jj'.

Pour ton problème, tu auras donc à formater les dates que tu reçois de ton formulaire :
<?php

// Récupérer les dates du forumulaire
$dateA=$_GET["date_a"];
$dateB=$_GET["date_b"];
// si le passage de paramètre se fait par get ou $_POST["date_a"] si le passage se fait par post

//Formater les dates pour MySQL
$tab=explode("/",$dateA);
// Retourne un tableau ou chaque element est une partie de la chaine délimitée par le caractère du premier paramètre
$date_a_mysql="\'".$tab[2]."-".$tab[1]."-".$tab[0]."\'"
// apostrophes obligatoire pour délimiter une date dans MySQL


$tab=explode("/",$dateB);
$date_b_mysql="\'" .$tab[2]."-".$tab[1]."-".$tab[0]."\'"
?>

Remarque : Cela fonctionnera uniquement si tu recois les valeurs de ton formulaire sous la forme jj/mm/aaaa. Dans un autre cas, il faudra t'arranger pour extraire le mois, le jour et l'année de la date récupérée. Substr() est une autre fonction pour extraire des sous-chaînes.


La transformation dans l'autre sens suit la même logique.
<?php

// Récupérer les dates du forumulaire
// $tab_mysql représente le résultat d'une requête après traitement.

//Formater les dates en jj/mm/aaaa
$tab=explode("-",$tab_mysql["date_a"]);

$date_a_formulaire=$tab[2]."/".$tab[1]."/".$tab[0]
$tab=explode("-",$tab_mysql["date_b"]);
$date_a_formulaire=$tab[2]."/".$tab[1]."/".$tab[0]
?>

Afin de déterminer les enregistrements dont les dates sont comprises entre date_a et date_b, tu effectueras d'abord la transformation au format MySQL et ensuite tu pourras utiliser la requête suivante:
<?php
$query="SELECT * FROM ma_table WHERE champ_date>=$date_a_mysql
                AND champ_date<=$date_b_mysql";
//ouverture de connexion + selection de la table + envoi de la requête
?>

Si tu souhaites une réponse plus précise, il est nécessaire que tu fournisses plus de détails comme le format de ta base de données, ce que tu souhaites faire exactement, etc.

Bonne programmation

Jean Poldeux

  Every problem has a solution. The difficulty is to find it 

jeudi 3 mars 2005 à 08:29:58 | Re : Récuperer dates Mysql

infosub

Super Merci pour votre aide,

Je vais me pencher sur ces pistes et je vous tiendrais au courant...

merci encore

Rafael

jeudi 17 mars 2005 à 18:20:56 | Re : Récuperer dates Mysql

infosub

Re- Bonjour,

Voila j'ai un peu avancé dans ma recherche j'arrive enfin à afficher un calendrier avec ds couleurs etc, mais je bloque juste sur un script  pour recuperarer et inserer dans ma BDD des jours compris entre deux dates.

Le script ci-dessous on calcule le nombre de jours entre deux dates, puis l'ajoute à la date de depart.
ex: entre 2005-02-28 et 2005-03-07 la diference est de 7 jours donc la date affiché est  2005-03-07

pour ça c'est bon, par contre je voudrais pouvoir incrementer d'un jour à chaque fois la date de depart et recuperer toutes les dates intermediares pour les insèrer dans une table MYSQL ( le champ date)  les dates comprises entre les deux (au même format)
c'est à dire je devrais avoir dans mon champ Date les  8 enregistrements dans l'ordre suivant :

2005-02-28
2005-03-01
2005-03-02
2005-03-03
2005-03-04
2005-03-05
2005-03-06
2005-03-07


Donc j'ai mis une boucle qui compare et incremente de 1  (en commençant par 0) à chaque fois.

Le problème c'est que evidenment ça me donne une erreur (Fatal error: Cannot redeclare dateop() (previously declared in...)!

Donc  comment je peux faire pour recuperer toutes mes dates sur une (ou plusieurs variables) histoire de pouvoir les insèrer après dans ma table!

Voila j'espere que c'est assez clair..

Merci
Rafael

PS : voici le script :


$jour="28";
$mois="02";
$an ="2005";
$jour2="07";
$mois2="03";
$an2="2005";


function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2){ // $calcule la dierence de jours entre les deux dates
 $timestamp2 = mktime(0, 0, 0, $mois, $jour, $an);
  $timestamp = mktime(0, 0, 0, $mois2, $jour2, $an2);
 
  $diff = floor(($timestamp - $timestamp2) / (3600 * 24));
  return $diff;
}

$nbr_jours = diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2);// recupere nombre de jours sur variable $nbr_jours

echo" ça fait: $nbr_jours";//verif  nombre de jours sur variable $nbr_jours

for ($i = 0; $i <= $nbr_jours ; $i++) {  // on fait une boucle si ajout est = ou sup à 0
echo "<p>ça donne..$i</p>";//verif  si la boucle fonctionne

function dateop($jour , $mois , $an , $i){  // $i correspond au nombre de jour à ajouter a la date

 $timestamp = mktime(0, 0, 0, $mois, $jour+$i, $an);// aditione la diference de jours  à la date de debut
 return (date("Y-m-d", $timestamp));

$temp = dateop($jour , $mois , $an , $i);

echo" donc  ça devrait faire : $temp";
}

}


 

jeudi 17 mars 2005 à 20:42:59 | C'est bon j'ai trouvé !!

infosub

Re-bonjour,

voila c'est bon tout fonctionne ..

Voici le script au cas ou ça pourais intereser quelqu'un !

Merci encore pour l'aide

 

 

$jour="18";
$mois="03";
$an ="2005";
$jour2="07";
$mois2="04";
$an2="2005";


function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2){ // $calcule la dierence de jours entre les deux dates
 $timestamp2 = mktime(0, 0, 0, $mois, $jour, $an);
  $timestamp = mktime(0, 0, 0, $mois2, $jour2, $an2);
 
  $diff = floor(($timestamp - $timestamp2) / (3600 * 24));
  return $diff;
}

$nbr_jours = diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2);// recupere nombre de jours sur variable $nbr_jours


for ($i = 0; $i <= $nbr_jours ; $i++) {  // on fait une boucle si ajout est = ou sup à 0
$timestamp = mktime(0, 0, 0, $mois, $jour+$i, $an);
$return=date("Y-m-d", $timestamp);
$query=("INSERT INTO dates (ndate,news,newslink) VALUES ('$return','test','test')");    
MYSQL_QUERY($query) or die("Erreur, contactez le webmaster");

}



Cette discussion est classée dans : date, mysql, format, récuperer, dates


Répondre à ce message

Sujets en rapport avec ce message

Comparaison de date [ par benett ] Bonjour à tous,Comment peut-on comparer 2 dates et extraire la différences en jours.Ces 2 dates sont encodées via un formulaire au format aaaa/aa/aa.C Date avant 1970. [ par ckoo ] Bonjour tout le monde.Voila le pbl :je fais une appli avec gestion des utilisateurs. On peut saisir leur date de naissance. Quand on enregistre la dat PHP et MySQL : format de date [ par vir76 ] Salut tout le monde,Voilà, dans MySQL, j'ai converti mon format DATE à l'aide de la fonction SELECT DATE_FORMAT(nom de mon champ, mon format)Le serveu PHP et MySQL : format de date [ par vir76 ] Bonjour,Je voudrais convertir le format de date de mySQL (aaaa-mm-jj) en format français (jj-mm-aa). J'ai essayé plusieurs fonctions présentes sur ce modifier format d'une date extraite d'une base SQL [ par titsuisse ] Bonjour,Je pense que ce point a déjà du être aborder cependant je n'ai rien trouvé qui me satisfasse (en faite rien qui marche).Voilà, j'ai une table date et MySQL [ par LaTatadu91 ] Bonjour tout le monde, j'ai une table MySQL qui comporte un champ date au format DATETIME je récupére d'un formulaire une date dans ce format: 2006-0 Les dates avec MySQL [ par ImmortalPC ] Salut,je deviens fou avec mon calendrier J' ai une date de commencement et une date de finrespectivement : date_start et date_endLeur type : datetime compare date [ par atchoumen ] Bonjour,Je chercher a faire une comparaison entre deux dates mais cela ne fonctionne pas. Le principe est : Je rempli un formulaire dans lequel je mar Condition d'une boucle [ par christobal ] Bonjour, L'objectif de ce code est d'affiché la prochaine date de sortie ou s'il n'y a plus de date l'affichage d'un message.Mon pb vient du fait que comparaison dates [ par noussaa19 ] Bonjour, j'ai un problème dans mon code php je veux comparer 2 dates dont la première récupéré à partir d'une base de donnée mysql mais sous la forme


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales