Pb de date

Eléphant du PHP | 223 Messages

13 déc. 2007, 16:54

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";

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 déc. 2007, 17:11

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 223 Messages

13 déc. 2007, 17:41

le champ saison contien les saison du style 2007-2008 ou 2008-2009 ext............

ViPHP
ViPHP | 2291 Messages

13 déc. 2007, 18:16

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:
Modifié en dernier par dunbar le 14 déc. 2007, 16:37, modifié 3 fois.

Eléphant du PHP | 223 Messages

13 déc. 2007, 18:19

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