Page 1 sur 1

Pb de date

Posté : 13 déc. 2007, 16:54
par hashut
Salut as tous

voila j'ai un probleme je cree un site pour mon club de rugby.
j'insere via sql les photos des equipe selon les catégorie et l'année.
sur le site j'ai fais 2 menu un qui affiche par année et l'autre par saison.
je m'explique dans une partir il s'affiche par année pas de probleme
dans l'autre parti par saison la j'ai un blem car les saison de rugby commence au mois Août et finisse en Juin
comment faire pour que dans le menu saison en cours ne s'affiche que la saison en cours
car dans la saison en cour toutes les images de la meme categorie s'affiche


base sql

Code : Tout sélectionner

CREATE TABLE `PhotoEquipes` ( `id` int(11) NOT NULL auto_increment, `Nom_Classe` varchar(255) NOT NULL default '', `Saison` varchar(255) NOT NULL, `Photo` varchar(255) NOT NULL default '', `Equipiers` longtext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ma page qui affiche les photo des equipe de la saison en cours*
$table= "PhotoEquipes" ;
$Nom_Classe= $_GET['EquipesPhotos'];
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter a la base de données"); 
@mysql_select_db("$bdd") or die("Impossible de se connecter a la base de données");
$query = "SELECT * FROM $table WHERE Nom_Classe = '$Nom_Classe'";
$result = mysql_query($query);
$nb = mysql_numrows($result);
$i=0;

while ($i < $nb){ 
$id= mysql_result($result,$i,"id");
$Nom_Classe= mysql_result($result,$i,"Nom_Classe");
$Saison= mysql_result($result,$i,"Saison");
$Photo= mysql_result($result,$i,"Photo");
$Equipiers= mysql_result($result,$i,"Equipiers");
$i++;
echo"$Nom_Classe <imr src=\"$Photo\"> liste des Joueurs $Equipiers";

Posté : 13 déc. 2007, 17:11
par Ryle
Que contient le champ "saison" ?

Par ailleurs, je ne vois pas comment tu peux faire pour afficher les photos d'une année sans avoir cette information dans ta table....

Au pire, il te suffit simplement d'ajouter un champ de type date avec la date de la photo dans ta table, tu auras ainsi directement l'année civile (avec la fonction YEAR()) et tu pourras tout aussi facilement spécifier dans ta requête un critère pour indiquer entre quelles dates (avec BETWEEN) les enregistrements doivent se trouver pour être retournés :)

Pb date

Posté : 13 déc. 2007, 17:41
par hashut
le champ saison contien les saison du style 2007-2008 ou 2008-2009 ext............

Re: Pb date

Posté : 13 déc. 2007, 18:16
par dunbar
le champ saison contien les saison du style 2007-2008 ou 2008-2009 ext............
Comme ceci ci j'ai bien comprid ta question :?:
$SaisonDebut       = '2007-06-01'; // On commence le 01 Juin 2007 .
$SaisonFin         = '2008-08-31'; // jusqu'au 31 Aout 2008.

$Nom_Classe        = $_GET['EquipesPhotos'];

                 mysql_connect($host,$user,$pass) 
                 or die("Impossible de se connecter a la base de donn&eacute;es");
                 mysql_select_db ("$bdd") 
                 or die("Impossible de se connecter a la base de donn&eacute;es");
                 
                 $sql = "SELECT *
                 FROM PhotoEquipes
                 WHERE an_saison BETWEEN '".$SaisonDebut."' AND '".$SaisonFin."'
                 ";
                 $sql = mysql_query($sql) 
                 or die ('Erreur : '.mysql_error() );
Et ta TABLE
CREATE TABLE `photoequipes` (
  `id` int(11) NOT NULL auto_increment,
  `an_saison` date NOT NULL,
  `Nom_Classe` varchar(255) NOT NULL default '',
  `Saison` varchar(255) NOT NULL,
  `Photo` varchar(255) NOT NULL default '',
  `Equipiers` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
J'ai rajouter un champ date (Format MySQL)
:wink:

MAJ : Comme je ne sais plus qui sur le forum ma dit un jour que le mot date était réservé j'ai modifier en an_saison à la place de date :wink:

Pb date

Posté : 13 déc. 2007, 18:19
par hashut
Salut
J'ai trouver la solution

1° je classe les Saison par année de fin saison 2007-2008 j'insere dans sql 2008
2° je parametre une condition

si le mois actuel est superieur as 07 saison egale année + 1
si le mois actuel est inferrieur as 06 saison egale année
$mois=date("m");
$annee=date("Y");
if ($mois>=07){
$Saison=($annee+1);
}
if ($mois<=06){
$Saison="$annee";
} 
ma page qui affiche les photo des equipe de la saison en cours*

$Nom_Classe= $_GET['EquipesPhotos'];
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter a la base de donn&eacute;es"); 
@mysql_select_db("$bdd") or die("Impossible de se connecter a la base de donn&eacute;es");
$query = "SELECT * FROM $table WHERE Nom_Classe = '$Nom_Classe' AND Saison = '$Saison'";
$result = mysql_query($query);
$nb = mysql_numrows($result);
$i=0;

sa marche nickel et je ne touche pas mon cade deja cree

merci de votre aide