oz999 Posté 21 Décembre 2004 Posté 21 Décembre 2004 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
Sarc Posté 21 Décembre 2004 Posté 21 Décembre 2004 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 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
oz999 Posté 22 Décembre 2004 Auteur Posté 22 Décembre 2004 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 ). vilà
Xethorn Posté 22 Décembre 2004 Posté 22 Décembre 2004 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
Xethorn Posté 22 Décembre 2004 Posté 22 Décembre 2004 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
oz999 Posté 22 Décembre 2004 Auteur Posté 22 Décembre 2004 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 )
Titag Posté 22 Décembre 2004 Posté 22 Décembre 2004 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.
Xethorn Posté 22 Décembre 2004 Posté 22 Décembre 2004 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
Sarc Posté 22 Décembre 2004 Posté 22 Décembre 2004 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
oz999 Posté 22 Décembre 2004 Auteur Posté 22 Décembre 2004 ok merci a tous, si je reussi avant la fin des temps , je mettrai le code en ligne
oz999 Posté 23 Décembre 2004 Auteur Posté 23 Décembre 2004 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
Titag Posté 23 Décembre 2004 Posté 23 Décembre 2004 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
oz999 Posté 23 Décembre 2004 Auteur Posté 23 Décembre 2004 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??
Titag Posté 23 Décembre 2004 Posté 23 Décembre 2004 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...
oz999 Posté 23 Décembre 2004 Auteur Posté 23 Décembre 2004 (modifié) ok je vois le fonctionnement du biniou 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é 23 Décembre 2004 par oz999
Titag Posté 23 Décembre 2004 Posté 23 Décembre 2004 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 ?
Sarc Posté 23 Décembre 2004 Posté 23 Décembre 2004 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...
oz999 Posté 23 Décembre 2004 Auteur Posté 23 Décembre 2004 (modifié) 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é 23 Décembre 2004 par oz999
Titag Posté 24 Décembre 2004 Posté 24 Décembre 2004 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
Sarc Posté 24 Décembre 2004 Posté 24 Décembre 2004 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 !
oz999 Posté 27 Décembre 2004 Auteur Posté 27 Décembre 2004 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant