Afficher événement

Résolu/Fermé
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 - 24 août 2009 à 21:00
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 - 31 août 2009 à 14:42
Bonjour,

Je souhaiterais afficher sur ma page une sorte de mini agenda qui m'afficherait des événements à venir (dans la limite de 2 ou 3 pour l'instant, même si ma base de données en contient beaucoup plus).

Dans ma BDD, il devrait y avoir une table 'representations' avec les champs id, date, et lieu.
Comment organiser ? Un champ VARCHAR pour le lieu, et un DATE pour la date ? Sous quel format envoyé la date à partir de la requête INSERT INTO dans ma page php ?
Et dans ma page où doit s'afficher les 2 prochains événements à venir (et pas ceux qui sont passés), la requête SQL doit être comme ceci :
SELECT * FROM representations WHERE 'date' >= current_timestamp ORDER BY date DESC (merci à J-L).

Merci d'aVance pour votre aide.

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 août 2009 à 21:34
Comment organiser ? Un champ VARCHAR pour le lieu, et un DATE pour la date

tu mets VARCHAR 255 caracteres

le champ date tu mets DATE par contre elle est au format aaaa-mm-jj

donc il faut la metre au format français avant affichage dans ta page


Sous quel format envoyé la date à partir de la requête INSERT INTO dans ma page php ?

la requette INSERT INTO permet d'enregistrer dans la base pas a insérer ce que tu lis dans une page

pour cela il faut SELECT * FROM ta_table

SELECT * FROM representations WHERE 'date' >= current_timestamp ORDER BY date DESC

SELECT * FROM representations WHERE 'date' >= NOW() ORDER BY date DESC 
1
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 1
24 août 2009 à 21:42
Oui oui, c'est bien ce que je voulais dire concernant le INSERT INTO. Il sera sur une page du back office avec un formulaire.
Je demandais comment le formuler en fait. Je me suis mal exprimé.
INSERT INTO representations via un simple champ à remplir. C'est ce que j'ai le plus de mal à me représenter.

Merci pour le reste.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 août 2009 à 21:13
il ne faut pas de ' a date

SELECT * FROM representations WHERE date >= NOW() ORDER BY date LIMIT 2 


et

champ date tu mets type DATE et est elle bien au format aaaa-mm-jj
1
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 1
31 août 2009 à 14:42
Tout marche bien désormais. Merci.
En effet, voici ma requête :
SELECT * FROM representations WHERE date >= CURRENT_DATE() ORDER BY date LIMIT 2


Dans ma base, la date est de style DATE, au format AAAA-MM-JJ.

Sur ma page je renvoie la date au format français par contre :
<?php echo date("d-m-Y", strtotime($ligne["date"])); ?>

Encore merci :)
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
25 août 2009 à 09:01
si je comprend bien tu veux a partir d'un formulaire rentrer la valeur saisie dans une BDD

un petit exemple:

<?php
//le formulaire s'appelle lui même donc on va tester si le bouton enregister a été cliqué pour faire le traitement
if(isset($_POST['enregistrer'])){
	if(empty($_POST['champ1'])){
		//si champ pas rempli=> message
		echo ' Veuillez saisir la valeur ! ';
	}else{
		$champ1=mysql_escape_string($_POST['champ1']);
		mysql_connect(.........);
		mysql_select_db('ta_ base');
		$requette="INSERT INTO ta_table (nom_du_champ1) VALUES('".$champ1."')";
		$enr=mysql_query($requette) or die "Pb avec la requette ".mysql_error());
		//mesage si ok
		if($enr) echo "Enregistrement r&eacute;ussi !" ;
	}
}
?>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Valeur:<input type="text" name="champ1" value="">
<br /<<br />
<input type="submit" name="enregistrer" value="Enregistrer dans BDD">


</form>
0
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 1
26 août 2009 à 21:12
Après une journée "d'apprentissage" on va dire, ça marche super bien !

Je vous remercie pour tout !
0
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 1
27 août 2009 à 15:51
Finalement j'ai un nouveau soucis ...

La page m'affiche toujours les representations passées celle d'hier par exemple... je sui sûr que ça vient de ma requête.
SELECT * FROM representations WHERE 'date' >= CURRENT_DATE() ORDER BY date LIMIT 2
à la place de CURRENT_DATE(), j'ai essayé avec DATE(), CURDATE(), ou même NOW(), mais ça ne marche dans aucun des cas. Ca m'affiche toujours la représentation d'hier soir.
0