Calendrier / Mysql

Eléphant du PHP | 136 Messages

23 oct. 2008, 16:05

Bonjour,

J'ai un petit soucis pour un projet.
Je dois récupérer dans ma base de donnée des chiffres de vente et les mettre sous la forme d'un tableau. Or mon problème est la gestion du tableau.

En effet il faudrait que j'arrive à avoir un tableau du type :

NOMDUMOIS Semaine du XX au XX Semaine du XX au XX Semaine du XX au XX
Lundi xxxx ventes xxxx ventes xxxx ventes
Mardi xxxx ventes xxxx ventes xxxx ventes
Mercredi etc....
Jeudi
Vendredi
Samedi
Dimanche

Et je ne sais comment faire ce tableau en partant de la date du jour (afin que mon script calcul le nombre de jour dans le mois et les semaines).
J'ai pensé à utiliser un script de calendrier mais cela sera trop lourd à modifier par la suite.
Auriez vous une idée ?

Merci pour votre aide, :)

Bisvan
Bisvan :)

ViPHP
ViPHP | 1136 Messages

23 oct. 2008, 16:35

Salut ,

Je pense que les fonctions natives à php peuvent résoudre cette difficulté ... :)

Dans un premier temps , tu transforme ta date en timestamp ,
aide : http://fr2.php.net/manual/fr/function.mktime.php

Puis avec la méthode date tu peux avoir une multitude d'info tel que le nombre de jours dans le moi , jour de la semaine , numéro de semaine ect ...

http://fr2.php.net/manual/fr/function.date.php

A partir d'une date , tu peux donc obtenir toutes tes infos que tu cites dans ton post , apres , il te reste à les mettre dans ton tableau .

En espérent que celà réponde à ta question ... si je l'ai bien compris ..

cdt,
Christophe.

Eléphant du PHP | 136 Messages

23 oct. 2008, 16:36

Salut et merci de ta réponse !
En fait j'arrive à avoir toutes ces infos :
1er jour du mois
Dernier jour
NOmbre de jour dans le mois

Cependant je ne sais comment faire ma boucle afin de créer ce tableau...
Bisvan :)

ViPHP
ViPHP | 1136 Messages

23 oct. 2008, 16:45

Je suppose que tu récupères les dates et chiffres de vente suite à une requête sur une base de données ...
lorsque tu exploite le résultat de ta requete , exemple pour une requete mysql ,

Code : Tout sélectionner

while( $data = mysql_fetch_array($resrequete,MYSQL_ASSOC)) { //là tou peux completer ton tableau .. $TdatesChiffres[ ] = array( "date"=> $data["date"], "chiffreVente" => $data["chiffrevente"] ); } //on regarde ton tableau maintenant var_dump($TdatesChiffres);
Voilà bien entendu , je ne connais pas les champs de ta base que tu récupères ici j'ai mis pour l'exemple date et chiffrevente .. mais c'est juste pour l'exemple ..

Est ce que j'ai bien compris ton probléme ? :roll:

Eléphant du PHP | 136 Messages

23 oct. 2008, 17:26

Hello,

En fait non...:)
Je sais récupérer mes données mysql aussi.

Non mon problème est le suivant (j'espère que je vais être plus clair) :

1/ création du tableau HTML du mois en cours sous la forme grace à PHP
NOMDUMOIS__Semaine du XX au XX____Semaine du XX au XX___Semaine du XX au XX
Lundi_________xxxx ventes______________xxxx ventes___________xxxx ventes
Mardi_________xxxx ventes______________xxxx ventes___________xxxx ventes
Mercredi__________etc....
Jeudi
Vendredi
Samedi
Dimanche
2/ récupération des données mysql pour chaque jour du mois et affichage dans chaque case du tableau
Bisvan :)

ViPHP
ViPHP | 1136 Messages

23 oct. 2008, 18:23

Salut ,

En fait , tu as une sorte de page html dans laquelle tu veux injecter les valeurs que tu récupères de ta base ? j'y suis cette fois :D

Dans ce cas , pourquoi n'utilises tu pas de moteur de templates ? c'est ce qui me parait coller au mieux à ce que tu veux faire ... non ?

Invité
Invité n'ayant pas de compte PHPfrance

23 oct. 2008, 18:31

Je n'y connais rien en template :? Que veux tu dire par "moteur de template" ?

ViPHP
ViPHP | 1136 Messages

23 oct. 2008, 18:40

Ba en fait , tu as une page "statique" souvent une page html , qui represente l'affichage sans les données "variables" ... ces données sont par exemple remplacé par des balises de ce style par exemple ##!TITRE!## ##!VAL1!## , et le moteur de template , se charge de charger le fichier html , remplacer les balises définies les les valeurs correspondante ...

un exemple d'un moteur de templates tres simplifier mais le but est de comprendre le fonctionnement :

/**
* Liste des remplacements
*/
$aremplacer	=	array(
	"version"=>'/##VERSION##/',
	"database"=>'/##DATABASE##/',
	"user"=>'/##USER##/',
	"password"=>'/##PWD##/',
	"hote"=>'/##HOST##/',
	"port"=>'/##PORT##/'
	);
		
/**
 * Liste des valeurs de remplacement
 */
$remplacements	=	array(
	"version"=>"1.2",
	"database"=>"mabasededonnees",
	"user"=>$_POST['user'],
	"password"=>$_POST['password'],
	"hote"=>"127.0.0.1",
	"port"=>3366
	);

//définition des variables
(string)$newFile="";
(string)$filename="page.html";
				
//ouverture du fichier html en lecture seule		
$handle = fopen($filename, "r");
			
//récupération du contenu du fichier
$newFile	=	fread($handle,filesize($filename));
			
//fermeture de la ressource
fclose($handle);
		   
		    
/*
 * Changements apportes (remplacement des balises par les valeurs definies ds les tableau plus haut)
*/
$newFile	=	preg_replace($aremplacer,$remplacements,$newFile);
			
//affichage de la page avec les valeurs	
echo $newFile;
imaginons le fichier page.html comme ceci :

Code : Tout sélectionner

<html> <head></head> <table> <tr> <td>Version:</td> <td>##VERSION##</td> </tr> <tr> <td>ma base:</td> <td>##DATABASE##</td> </tr> ... ... </table> </html>
ainsi , apres le passage par le moteur de template , on se retrtouve avec une page comme ceci :

Code : Tout sélectionner

<html> <head></head> <table> <tr> <td>Version:</td> <td>1.2</td> </tr> <tr> <td>ma base:</td> <td>mabasededonnees</td> </tr> ... ... </table> </html>
Voilà pour le principe ...

Mammouth du PHP | 804 Messages

24 oct. 2008, 10:21

Bonjour,

Il ne serait pas plus pratique et plus simple de mettre les clés en tableau associatif ?
De cette façon au moment de la création du tableau il sera beaucoup plus facile d'y classer les données ?
C’est juste une opinion

dog

Eléphant du PHP | 136 Messages

24 oct. 2008, 18:25

Merci pour vos réponses, déjà j'y vois plus clair concernant les templates.

Bon en fait je sèche sur la formation du "calendrier".
En effet maintenant je n'arrive pas à créer automatiquement un calendrier de type

Code : Tout sélectionner

<table width="55%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>OCTOBRE 2008</td> <td>semaine du 1 au 5</td> <td>semaine du 6 au 12</td> <td>semaine du 13 au 19</td> <td>semaine du 20 au 27</td> <td>semaine du 27 au 31</td> </tr> <tr> <td width="12%">LUNDI</td> <td width="13%">mes résultats</td> <td width="14%">mes résultats</td> <td width="12%">mes résultats</td> <td width="12%">mes résultats</td> <td width="37%">mes résultats</td> </tr> <tr> <td>MARDI</td> <td width="13%">mes résultats</td> <td width="14%">mes résultats</td> <td width="12%">mes résultats</td> <td width="12%">mes résultats</td> <td width="37%">mes résultats</td> </tr> <tr> <td>MERCREDI</td> <td width="13%">mes résultats</td> <td width="14%">mes résultats</td> <td width="12%">mes résultats</td> <td width="12%">mes résultats</td> <td width="37%">mes résultats</td> </tr> <tr> <td>JEUDI</td> <td width="13%">mes résultats</td> <td width="14%">mes résultats</td> <td width="12%">mes résultats</td> <td width="12%">mes résultats</td> <td width="37%">mes résultats</td> </tr> <tr> <td>VENDREDI</td> <td width="13%">mes résultats</td> <td width="14%">mes résultats</td> <td width="12%">mes résultats</td> <td width="12%">mes résultats</td> <td width="37%">mes résultats</td> </tr> <tr> <td>SAMEDI</td> <td width="13%">mes résultats</td> <td width="14%">mes résultats</td> <td width="12%">mes résultats</td> <td width="12%">mes résultats</td> <td width="37%">mes résultats</td> </tr> <tr> <td>DIMANCHE</td> <td width="13%">mes résultats</td> <td width="14%">mes résultats</td> <td width="12%">mes résultats</td> <td width="12%">mes résultats</td> <td width="37%">mes résultats</td> </tr> </table>
pour le mois en cours... une petite idée ? car la plupart des scripts de calendrier proposent juste :

Code : Tout sélectionner

LMMJVSD xx12345 67891011 etc...
Bisvan :)