Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/06/2011, 13h06   #1
Invité régulier
 
Homme Loic
Étudiant
Inscription : décembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Loic
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 26
Points : 8
Points : 8
Par défaut Récupération de dates sur un serveur => passe en String

Bonjour!

Alors je suis en train de faire un script qui va utiliser la librairie GD pour créer des images, le tout à partir d'infos contenues dans une BDD.

Mon problème porte sur les dates.

J'ai stocké dans un array des valeurs que je veux pouvoir accéder en fonction de la date actuelle.
Code :
$dat = array("$last6" => 30, "$last5" => 90, "$last4" => 150, "$last3" => 210, "$last2" => 270, "$last1" => 330, ...);
$last6, $last4 etc sont en fait des années: 2005, 2006, 2007 etc (seulement elles sont variables d'où le fait qu'elles sont stockées sous forme de string dans des variables).

Je désire récupérer donc une date stockée dans ma BDD (en format Date) et en extraire juste l'année sous forme de string afin de pouvoir ensuite récupérer grâce à l'array, le numéro correspondant (et faire mes dessins).

J'ai fait plusieurs tests mais non concluants, voilà ce que j'ai tenté:

Code :
1
2
3
4
5
6
7
8
9
 
 
 		$dd= requete_joomla("SELECT ddebut FROM jos_projets WHERE idproj = '$nb'");
		$deb=mysql_fetch_array($dd);
		$debut=implode ($deb);
		$tstamp= strtotime($debut);
		$test= date (Y ,$tstamp);
		echo "   je echo le $test   ";
		echo " date réelle: $debut";
Alors, $debut retourne deux fois la date cad: date réelle: 2008-01-012008-01-01

$test me retourne 1970

Voila, peut être que je me prend la tête, je pourrais en effet tout simplement stocker l'année de début et de fin sous forme de INT dans la BDD, mais si je veux faire un truc propre et complet, je pense qu'il faut quand même passer par les dates (et puis comme ça j'apprendrais quelque chose ^^)

Merci d'avance pour votre aide!!!
magnus2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 14h09   #2
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Bonjour,

Si tu veux stocker la date sous forme d'entier, stocke un timestamp.
Le seul inconvénient est qu'ensuite tu ne pourras plus faire de requête avec des traitements spécifiques sur les dates. Tu pourras uniquement utiliser les opérateurs de comparaison < >, BETWEEN etc... mais pas les fonctions de date SQL.

Aussi, le code que tu montres n'est pas correct.
  1. mysql_fetch_array retourne un tableau !
  2. implode attend deux paramètres, consultes la documentation
  3. La constante Y n'est pas définie, utilises une chaine de caractères ('Y')

Code :
1
2
3
4
5
6
7
$dd = requete_joomla("SELECT ddebut FROM jos_projets WHERE idproj = '$nb'");
$row = mysql_fetch_array($dd);
$debut = $row['ddebut'];
$timestamp = strtotime($debut);
$year = date('Y', $timestamp);
 
echo "$year : date réelle: $debut<br/>";
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/06/2011, 15h39   #3
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 711
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 711
Points : 328
Points : 328
Citation:
Envoyé par magnus2229 Voir le message
Je désire récupérer donc une date stockée dans ma BDD (en format Date) et en extraire juste l'année sous forme de string afin de pouvoir ensuite récupérer grâce à l'array, le numéro correspondant (et faire mes dessins).
Si "date" est le nom de votre champ mysql et que ce champ soit de type date, tu recupère simple l'année ainsi :
Code :
1
2
 
SELECT YEAR(date) as annee FROM jos_projets
"annee" sera sous la forme dont tu veux, si j'ai bien compris...
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/07/2011, 11h15   #4
Invité régulier
 
Homme Loic
Étudiant
Inscription : décembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Loic
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 26
Points : 8
Points : 8
Bon et bien c'est tout bon, j'ai utilisé la première façon de faire et ça marche nikel merci beaucoup!

Concernant la seconde, j'ai pas réussi à faire quelque chose de l'objet qui contenais supposément l'année, merci quand même pour ton aide!

magnus2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h15.


 
 
 
 
Partenaires

Hébergement Web