Rechercher : dans
Par :

[PHP] Array + variables dynamiques

Dernière réponse le 9 jui 2007 à 19:41:20 Kalamya, le 8 jui 2007 à 15:11:37 
 Signaler ce message aux modérateurs

Salut tout le monde :)

J'ai un array qui me pose quelques problèmes...

Mon objectif : Récupérer la fréquence des visites selon les jours de la semaine, le tout par an.

$query="SELECT*FROM statistiques WHERE annee=$my_annee";
$result = mysql_query($query);
while ($tableau = mysql_fetch_array($result))
{
$mes_jours=$tableau["jour"];
$mes_mois=$tableau["mois"];
$mon_annee=$tableau["annee"];

$joursem = array('Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam');

$timestamp = mktime (0, 0, 0, $mes_mois, $mes_jours, $mon_annee);
$myday = $joursem[date("w",$timestamp)];
...
// Affiche Lun Dim Lun Mer etc...

Mon problème : Compacter et obtenir Lun 155, Mar 458 etc...

Tentative :

...

$mytab=array($myday);
}
$answer = array_count_values($mytab);
echo $answer['Lun'];
echo $answer['Mar'];
etc...


Evidemment, ça ne fonctionne pas ! lol. L'array est de toute évidence mal construit. J'ai essayé également de construire mon array au préalable avec $myday="'$myday',"; mais ce qui donne une virgule de trop à la fin.

Bref, je coince... Une idée ?!

Merci :)
Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « [PHP] Array + variables dynamiques » dans :
PHP - Les variables Voir Concept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...

1

Alain42, le 8 jui 2007 à 19:56:05

Recherche plutôt du côté de Mysql et de ses possibilités de traitement lors des requettes:

par exemple SELECT SUM('stats') FROM table WHERE annee=$my_annee AND day='LUN'
qui va additionner pour tous les LUNDIS

et tu fais autant de fois que de jours.

A adapter selon les champs de ta base.

Va voir sur google pour plus de détails et la methode d'interrogation

Répondre à Alain42

2

A.Nonyme, le 8 jui 2007 à 23:07:28

Préférable en effet de voir du côté de MySQL, mais suivant ce que contient cette table (un enregistrement par jour ou par visite ?)
S'il s'agit d'un enregistrement par visite :
"SELECT COUNT(*) FROM statistiques WHERE annee=$my_annee GROUP BY `jour`"

Répondre à A.Nonyme

3

Kalamya, le 9 jui 2007 à 15:42:13

Tout d'abord, merci de votre aide :)

En fait dans ma base, j'ai la date des visites "découpées" :

jour ---> 09
mois ----> 07
annee ----> 2007

Le jour de la semaine n'apparait pas. C'est pourquoi j'ai utilisé :

$joursem = array('Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam');

$timestamp = mktime (0, 0, 0, $mes_mois, $mes_jours, $mon_annee);
$myday = $joursem[date("w",$timestamp)];


Mais pourquoi pas rajouter un champs dans la base avec le jour de la semaine...
en effet, cela serait plus simple.

En tout cas, merci ;)

Répondre à Kalamya

4

 Kalamya, le 9 jui 2007 à 19:41:20

J'ai trouvé une solution !!!

Je la poste donc pour ceux que ça pourrait aider..
Il suffit d'incrémenter selon les résultats... Bref, cela donne :

$cpt_lun = 0;
$cpt_mar = 0;
$cpt_mer = 0;
$cpt_jeu = 0;
$cpt_ven = 0;
$cpt_sam = 0;
$cpt_dim = 0;

$query="SELECT*FROM statistiques WHERE annee=$my_annee";
$result = mysql_query($query);
while ($tableau = mysql_fetch_array($result))
{
$mes_jours=$tableau["jour"];
$mes_mois=$tableau["mois"];
$mon_annee=$tableau["annee"];

$joursem = array('Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam');

$timestamp = mktime (0, 0, 0, $mes_mois, $mes_jours, $mon_annee);
$myday = $joursem[date("w",$timestamp)];

if ($myday=="Lun") { $cpt_lun++; }
if ($myday=="Mar") { $cpt_mar++; }
if ($myday=="Mer") { $cpt_mer++; }
if ($myday=="Jeu") { $cpt_jeu++; }
if ($myday=="Ven") { $cpt_ven++; }
if ($myday=="Sam") { $cpt_sam++; }
if ($myday=="Dim") { $cpt_dim++; }
}

Répondre à Kalamya