par
rspir » 23 sept. 2006, 23:34
Voici les tables
Code : Tout sélectionner
CREATE TABLE `table1` (
`jour` date NOT NULL,
`valeur` int(6) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `table1` VALUES ('2006-09-11', 3928);
INSERT INTO `table1` VALUES ('2006-09-12', 6497);
INSERT INTO `table1` VALUES ('2006-09-13', 6303);
INSERT INTO `table1` VALUES ('2006-09-14', 7541);
INSERT INTO `table1` VALUES ('2006-09-15', 8570);
INSERT INTO `table1` VALUES ('2006-09-16', 1126);
CREATE TABLE `table2` (
`n` int(5) NOT NULL auto_increment,
`jour` date NOT NULL default '0000-00-00',
`c1` int(5) NOT NULL default '0',
PRIMARY KEY (`n`),
KEY `date` (`jour`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2701 ;
INSERT INTO `table2` VALUES (2691, '2006-09-11', 0);
INSERT INTO `table2` VALUES (2692, '2006-09-11', 252);
INSERT INTO `table2` VALUES (2693, '2006-09-11', 0);
INSERT INTO `table2` VALUES (2694, '2006-09-11', 11);
INSERT INTO `table2` VALUES (2695, '2006-09-11', 0);
INSERT INTO `table2` VALUES (2696, '2006-09-12', 229);
INSERT INTO `table2` VALUES (2697, '2006-09-12', 0);
INSERT INTO `table2` VALUES (2698, '2006-09-12', 39);
INSERT INTO `table2` VALUES (2699, '2006-09-12', 8);
INSERT INTO `table2` VALUES (2700, '2006-09-12', 0);
Voici le code ... il faut juste adapter pour accéder à la bdd
Le resultat renvoyé est différent selon si on active le join
<?php
// ACCES MYSQL
include("../../inc/constant.php");
$connexion = connexion(user, pass, bdd, server);
// Récupération de la dernière date
$reqdate="select DATE_FORMAT(jour, '%d/%m/%Y') AS 'date_fr',jour from table2 order by jour desc limit 1";
$resdate = ExecRequete ($reqdate, $connexion);
$datecamp = ObjetSuivant ($resdate);
$dat_aff=$datecamp->date_fr;
// Extraction du N° de semaine et de l'année
$sEngDate = substr ($dat_aff, -4).substr ($dat_aff, 3, 2).substr ($dat_aff, 0, 2);
$iTime = strtotime ($sEngDate);
$semfiltre=date ('W', $iTime);
$anfiltre=date ('Y', $iTime);
$req = "select table1.jour, sum(valeur) as valeur"
. " FROM table1"
// . " LEFT JOIN table2 ON table1.jour=table2.jour"
. " where YEAR(table1.jour) = '$anfiltre'"
. " group by WEEK(table1.jour) ";
$res = ExecRequete ($req, $connexion);
$obj_w=0;
$obj_y=0;
while ($prod_w = LigneSuivante ($res))
{
if ($prod_w[objweek]==$semfiltre)
{
$obj_w = $prod_w[valeur] ;
}
$obj_y = $prod_w[valeur] +$obj_y ;
}
echo $obj_y;
?>
Voici les tables
[code]CREATE TABLE `table1` (
`jour` date NOT NULL,
`valeur` int(6) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `table1` VALUES ('2006-09-11', 3928);
INSERT INTO `table1` VALUES ('2006-09-12', 6497);
INSERT INTO `table1` VALUES ('2006-09-13', 6303);
INSERT INTO `table1` VALUES ('2006-09-14', 7541);
INSERT INTO `table1` VALUES ('2006-09-15', 8570);
INSERT INTO `table1` VALUES ('2006-09-16', 1126);
CREATE TABLE `table2` (
`n` int(5) NOT NULL auto_increment,
`jour` date NOT NULL default '0000-00-00',
`c1` int(5) NOT NULL default '0',
PRIMARY KEY (`n`),
KEY `date` (`jour`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2701 ;
INSERT INTO `table2` VALUES (2691, '2006-09-11', 0);
INSERT INTO `table2` VALUES (2692, '2006-09-11', 252);
INSERT INTO `table2` VALUES (2693, '2006-09-11', 0);
INSERT INTO `table2` VALUES (2694, '2006-09-11', 11);
INSERT INTO `table2` VALUES (2695, '2006-09-11', 0);
INSERT INTO `table2` VALUES (2696, '2006-09-12', 229);
INSERT INTO `table2` VALUES (2697, '2006-09-12', 0);
INSERT INTO `table2` VALUES (2698, '2006-09-12', 39);
INSERT INTO `table2` VALUES (2699, '2006-09-12', 8);
INSERT INTO `table2` VALUES (2700, '2006-09-12', 0);
[/code]
Voici le code ... il faut juste adapter pour accéder à la bdd
Le resultat renvoyé est différent selon si on active le join
[php]<?php
// ACCES MYSQL
include("../../inc/constant.php");
$connexion = connexion(user, pass, bdd, server);
// Récupération de la dernière date
$reqdate="select DATE_FORMAT(jour, '%d/%m/%Y') AS 'date_fr',jour from table2 order by jour desc limit 1";
$resdate = ExecRequete ($reqdate, $connexion);
$datecamp = ObjetSuivant ($resdate);
$dat_aff=$datecamp->date_fr;
// Extraction du N° de semaine et de l'année
$sEngDate = substr ($dat_aff, -4).substr ($dat_aff, 3, 2).substr ($dat_aff, 0, 2);
$iTime = strtotime ($sEngDate);
$semfiltre=date ('W', $iTime);
$anfiltre=date ('Y', $iTime);
$req = "select table1.jour, sum(valeur) as valeur"
. " FROM table1"
// . " LEFT JOIN table2 ON table1.jour=table2.jour"
. " where YEAR(table1.jour) = '$anfiltre'"
. " group by WEEK(table1.jour) ";
$res = ExecRequete ($req, $connexion);
$obj_w=0;
$obj_y=0;
while ($prod_w = LigneSuivante ($res))
{
if ($prod_w[objweek]==$semfiltre)
{
$obj_w = $prod_w[valeur] ;
}
$obj_y = $prod_w[valeur] +$obj_y ;
}
echo $obj_y;
?>[/php]