Aller au contenu

affichage d'un texte en fonction du jour/mois


oz999

Sujets conseillés

bonjour,

je recherche un script qui me permette d'afficher un texte préétabli dans un fichier, en fonction du jour de l'année. c'est en gros le principe de l'éphéméride, sauf qu'au lieu d'avoir le nom d'un Saint, j'ai des evenements historiques importants.

ex : chaque 11.nov, on aurait :

"le 11 nov 2004, mort de yasser arafat...., l'armistice..." etc

si en prime vous pouviez m'indiquer comment faire défiler ces infos..

merci à vous tous

Lien vers le commentaire
Partager sur d’autres sites

afficher un texte préétabli dans un fichier, en fonction du jour de l'année

faire défiler ces infos..

Tu veux quoi, aficher une info par jour, ou les faire défiler ?

Moi jte conseille de prendre ta bdd, de prendre ton notepad, de prendre ton courage a deux, et de faire ton script... T'en as pour 15 lignes avec optimisation :D

Dans ta bdd, tu mets un table avec trois colonnes pour mettre l'id, la date et l'évenement en question, et dans ton script php tu prends la date du jour, tu preleve dans ta bdd l'evenement du jour, et tu l'affiches sur ton site...

Pour les scripts tout fait, c'est pas avec moi :nono:

Lien vers le commentaire
Partager sur d’autres sites

et ce que je veux c'est les 2 :) , car les infos du jour vont être plus grande que leur zone d'affichage

je demande pas un script tout fait, mais je suis pas un pro. deja en html et javascript j'ai du mal, alors en php....

si je peux avoir une explication des fonctions nécessaires, et une marche a suivre (celle que tu m'indiques correspond à la logique que je me faisais.. mais je sais pas la mettre en oeuvre :P).

vilà

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour faire une info par jour, il n'y a rien de bien compliqué, juste de savoir utiliser correctement les tableaux php.

Voici un exemple :

<?php
// Code à completer et à mieux organiser
$date = array('12' => array('22'=>'-3 jours avant noël'; '23'=>'-2 jours avant Noel !'));
echo $date[date('m')][date('d')];
?>

Il n'y a rien de bien compliqué ;) Bonne chance pour remplir ton tableau ;)

Xethorn

Lien vers le commentaire
Partager sur d’autres sites

Note : pour afficher les deux, tu auras un peu de mal par contre (il faudra utiliser les affichages aléatoires, c'est déjà un peu plus complexe, surtout si tu ne connais pas grand chose à php :s).

Commence par petit et augmente au fur et à mesure ;)

Lien vers le commentaire
Partager sur d’autres sites

oki.

en fait j'ai un fichier .txt organisé comme cela :

23/11/1934 : Le Berlinois Hans Haupt dépose le brevet du parapluie pliant.

23/11/1944 : Le général Leclerc libère Strasbourg.

23/11/1976 : Mort d'André Malraux.

23/12/1909 : Albert Ier est couronné 3e roi des Belges.

23/12/1920 : George V signe le "Government of Ireland Act" séparant l'Irlande en deux.

23/12/1994 : Explosion d'un train rapide en Italie, la Mafia est soupçonnée.

et donc en date d'aujourd'hui, il y a 3 evènements à afficher. avec le code que tu m'indiques, il me suffirait alors de les mettre à la suite, non?

mais si je pouvais piocher ces infos dans une BDD, ca serait plus simple pour la mise à jour, lorsque je rajouterai des dates.

le truc c'est qu'il faut que je comprenne bien le fonctionnement php, ca commence mais je suis pas trés doué...chui pas un rapide (des fois çà a du bon :whistling: )

Lien vers le commentaire
Partager sur d’autres sites

Salut,

A mon humble avis, il vaut mieux perdre un peu de temps à comprendre comment organiser ces données dans une base de données que travailler à partir d'un fichier texte.

Ca ne parait peut-être pas évident au premier coup d'oeil. Mais le jour où tu aura un fichier texte avec 5000 lignes d'évenement à travers le monde, tu prendra 10 minutes pour ajouter une ligne au bon endroit.

Avec une BDD, 2 secondes et c'est terminé. Sans te soucier où est placé ce que tu viens de rajouter.

Ensuite "extraire" les infos en fonction du jour constitue presque la base des requètes sql.

Bref, toujours à mon humble avis, il vaut mieux galérer un peu au début, que beaucoup tout le reste du temps.

En gestion de projet on apprend souvent que une erreur de conception coute 1 (unité de temps) si on la corrige immédiatement, et 1000 si on la corrige pendant la programmation.

Lien vers le commentaire
Partager sur d’autres sites

Rebonjour,

Pour apprendre le php, il n'y a pas de miracle ... enfin, il faut avoir à l'esprit que c'est l'un des langages les plus faciles à manipuler (l'html n'en étant pas un). Quoique le php n'est pas vraiment un langage, c'est plus un script (puisqu'il est interprété et non compilé).

Je te conseille de lire ceci : http://xethorn.net/blog/index.php?2004/12/...pprendre-le-php, tu y trouveras une petite démarche pour apprendre le php. AMHA, si tu veux apprendre à programmer, il te faut une "ouverture" d'esprit et non se limiter à "ça marche pas c'est nul". Il y a, à mon gout, trop de personnes qui viennent demander de l'aide alors que les manuels répondent directement à leurs questions.

En somme, ne te décourage pas, persévère, il n'y a aucune raison pour que tu n'y arrives pas ;) Et puis, qui sait, peut-être que Noel t'apportera des idées ^^ (ok, je sors ;))

Follow your way ;)

Xethorn

Lien vers le commentaire
Partager sur d’autres sites

En gros, je t'ai indiqué la marche a suivre, il ne te reste plus qu'a chercher les bons paragraphes, et tu tomberas tellement amoureux du langage que tu apprendras tout le PHP, et ca te simplifiera la vie.

Avec tous ces messages ci dessus, tu ne peux plus échapper a cette eventualité... Muahahaha !

Ensuite, pour les faire défiler, un ptit javascript, mais la, euh, ca me regarde plus :P

Lien vers le commentaire
Partager sur d’autres sites

INSERT INTO dates VALUES( '1', '1', 'l évenement ');

y'a t-il la possibilité d'associer plusieurs évènements au meme date? car j'ai réussi à faire afficher l'evènement en fonction du jour considéré, mais c'est limité à 255 char.. et c'est pas joli.

merci

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Tu peux tout à fait entrer plusieurs enregistrements (plusieurs "lignes") avec la même date et ensuite ressortir tous les évenements pour une date donnée.

Par ailleurs, la limite est celle que tu donne aux champs de ta table. Varchar est limité à 255 caractères, TEXT a une capacité de 65538 caractères... ce qui est un peu plus confortable ;)

Lien vers le commentaire
Partager sur d’autres sites

ok; je reprend alors :

j'ai 1 fichier "install table" qui contient

CREATE TABLE date(
mois int(2) default '0' not null,
jour int(2) default '0' not null,
date varchar(255)<--// que je remplace par text(65000) par ex// not nul,
PRIMARY KEY (date)
);

ensuite un fichier BDD sous la forme

#
# dumping data for table 'date'
#
insert into date values ( '1', '1', ' evenement1');
insert into date values ( '1', '2', ' evenement2');
etc

je suppose que c'est ce dernier fichier qu'il me faut modifier. j'ai essayé en mettant

insert into date values ('1', '1', 'evenement1', 'evenement1bis'); mais cela ne fonctionne pas. suis je sur la voie??

Lien vers le commentaire
Partager sur d’autres sites

Euh... Tu es sur la voie... Mais c'est pas encore ca ;)

1°) La table est à créer une seule et unique fois.

2°) Elle va contenir des données : une date et un évenement

Soit :

 CREATE TABLE `evenements` (
`id_evenement` INT BINARY NOT NULL AUTO_INCREMENT ,
`date` DATE NOT NULL ,
`evenement` TEXT NOT NULL ,
PRIMARY KEY ( `id_evenement` )
)

Le champs id_evenement servira à donner un identifiant par évenement (ca peut servir et ca coute pas cher)

le champs date... pour la date (au format MM-JJ-AAAA)

le champ évenement... pour la description de l'évenement

3°) Tu peux insérer autant d'évenements (à la meme date)

INSERT INTO evenements(date, evenement) VALUES ('12-23-2004', 'L'avant-veille de Noël')
INSERT  INTO evenements(date, evenement) VALUES ('12-23-2004', 'Le lendemain du 22 décembre')
Etc...

Lien vers le commentaire
Partager sur d’autres sites

ok :) je vois le fonctionnement du biniou :D

par contre, pour la date, le format jour-mois-année est obligatoire, ou on peut ne pas tenir compte de l'année (juste MM-JJ) car mes evenement seront toujours anterieur à l'année en cours.

je peux pas inserer kelke chose dans le genre

 $date= date("d-m");

Modifié par oz999
Lien vers le commentaire
Partager sur d’autres sites

Ah oui c'est vrai... autant pour moi.

Je n'ai jamais eu à traiter ce genre de données. Peut-etre qu'effectivement un champ pour le jour et l'autre pour le mois est judicieux.

Peut-etre que certains ici ont eu une expérience similaire ?? Des témoignages ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Moi personnellement j'aurais fait une table avec id, date, evenement.

Ensuite, pour prélever tes infos, tu mets

avec $dateday = "%".date("m-d");

SELECT evenement FROM evenements WHERE date like '$dateday'

Je pense que ça devrait marcher...

Lien vers le commentaire
Partager sur d’autres sites

je vous met la totalité de ce que j'ai développé avec votre aide, et celles d'amis :

----- la table -----

CREATE TABLE 'evenements' (
'id_evenement' INT BINARY NOT NULL AUTO_INCREMENT,
'date' DATE NOT NULL,
'evenement' TEXT NOT NULL,
PRIMARY KEY ('id_evenement')
)

----- la requete SQL-----
INSERT INTO evenements (date, evenement) VALUES ('23-12, 'charabia')
INSERT INTO evenements (date, evenement) VALUES ('23-12, 'charabia')
INSERT INTO evenements (date, evenement) VALUES ('24-12, 'charabia')
INSERT INTO evenements (date, evenement) VALUES ('24-12, 'charabia')
INSERT INTO evenements (date, evenement) VALUES ('01-01, 'charabia')

etc


----- le code php -----
<?
include ("parametre.php");
$date="C'était un ".
date("j M");
$dateday="%".date("j-M");
$db=@mysql_connect($hostname, $username,$password);
_AT_mysql_select_db($database, $db);
$query="select evenement from evenements where date like '$dateday'";
$result = _AT_mysql_query($query,$db);
if (@mysql_num_rows($result)!=0)
{
for ($i =0; $i < count ($row);$i++
{
print($row[$i]);
}
}
?>

---- le fichier parametre.php -----
<?php
$hostname="localhost";
$username="root";
$password="";
$database="evenements";
?>

voilà; si ca vous semble correct...

par contre, quelqu'un pourrait il me dire ou placer du java pour faire defiler les info qui s'afficheront a partir de la BDD.

merci

Modifié par oz999
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Remplace plutôt ;

if (@mysql_num_rows($result)!=0)
{
for ($i =0; $i < count ($row);$i++
{
print($row[$i]);
}
}
?>

Par :

while ($row = mysql_fetch_object($result)) {


 echo $row->date. " - ".$row->evenement."<br>";

}

Essaye de faire en sorte que ca marche comme ca puis on s'occupera de le faire défiler ;)

Lien vers le commentaire
Partager sur d’autres sites

Salut !

Ya qques ptits problemes :

- il est conseillé de ne jamais mettre comme nom de colonne une fonction php. Ici, tu as mis date comme nom de colonne, et c'est bien une fonction php... Je te conseille donc de changer ca, pour éviter un bug que tu ne comprendrais pas ;)

- Je te conseille de remplacer date("j M"); par date("d M");

La différence : j te donne les jours en 1 ou 2 chiffres (de 1 a 31), alors que d te les donne en 2 chiffres (01 a 31). Vu comment tu remplis ta bdd, jte conseille donc d.

- Je pensais que tu voulais en fait afficher l'année, donc c'est pour ca que je t'avais parlé de mettre $dateday = "%".date("m-d"), mais vu qu'apparement tu ne souhaites pas mettre l'année dans ta bdd, alors enleve le %, et mets dans ta requete datedujour = '$dateday' a la place de datedujour like '$dateday'

ca donne donc ca :

$dateday= date("d-M");
$query="select evenement from evenements where date = '$dateday'";

- Faudra remplir ton parametres.php suivant les infos que t'auras donné ton hebergeur. Et ton $database me semble incorrect, ca sera surement ton login si tu es chez un hebergeur gratuit (chez free par ex).

Voila, corrige tout ca, et reviens nous voir si tu as encore des problemes !

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

tout a l'air de fonctionner parfaitement; quelques erreurs au debut du à des fautes de frappes mais ca a l'air d'être bon maintenant.. sauf que je sais pas comment faire sous easyphp.

la page s'affiche correctement, m'affiche la date mais ne va pas rechercher les infos dans la BDD

merci et bonnes fetes

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...