Script php: saisie de dates sans format date

Résolu/Fermé
Antroff Messages postés 7 Date d'inscription mercredi 28 janvier 2015 Statut Membre Dernière intervention 3 mai 2017 - Modifié par Chris 94 le 28/01/2015 à 16:05
Antroff Messages postés 7 Date d'inscription mercredi 28 janvier 2015 Statut Membre Dernière intervention 3 mai 2017 - 30 janv. 2015 à 13:26
Bonjour,

je travaille sur le développement d'un petit logiciel php et je souhaite que soit afficher sur la page d'accueil un message rappelant l'anniversaire des enfants.

J'ai une base de données mysql : application, une table :enfant des champs : nom_enfant, prenom_enfant, datenaiss_enfant sous la forme yyyy,mm,dd mais sans le format date.

pourriez vous m'expliquer un script?
A voir également:

2 réponses

Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
Modifié par jordane45 le 29/01/2015 à 13:04
C'est très simple en réalité, tu récupère ta date sous le format que tu as ...
Soit par exemple : 2010,25,11.

en php, la date du jour est facile a récupérer ..
$date_anniv = "2010,25,11"; // récupérer sur ta bdd. 
$date_anniv2 = explode(',',$date_anniv);
$date_anniv2 = $date_anniv[1].$date_anniv[2];
$date_du_jour = date('d,m', time());
if($date_du_jour == $date_anniv2) {
echo "Aujourd'hui nous sommes le ".date('d-m-Y', time()).", c'est l'anniversaire de ... "; 
1
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
29 janv. 2015 à 13:04
Bonjour,
Je pense tout de même qu'il risque d'avoir un souci de performances (lorsqu'il va vouloir faire un SELECT pour récupérer toutes les personnes dont l'anniversaire est aujourd'hui....) si son champ 'date' dans sa BDD n'est pas au format DATE ( mais en varchar par exemple...) .....
.... je ne dis pas que ça ne peut pas fonctionner... je dis par contre que ça va être plus compliqué (ou du moins.. beaucoup moins performant).
0
Antroff > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
29 janv. 2015 à 15:01
ok merci ,j'ai bien compris et jai modifié format date, et dans sql ça marche.
Comment puis -je insérer le résultat dans une page php svp?
0
Antroff > Antroff
29 janv. 2015 à 15:03
Seriez vous dispo pour me donner des conseils de temps en temps, même par mail?
0
Antroff Messages postés 7 Date d'inscription mercredi 28 janvier 2015 Statut Membre Dernière intervention 3 mai 2017 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
30 janv. 2015 à 13:26
Bonjour jordane45

merci j'ai changé le champ en date . La requête marche dans mysql.
Je voudrais laitre afficher le resultat dans une page php j'ai écrit ça mais je rencontre des soucis:

// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'application';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$requete = "SELECT nom_enfant FROM enfant WHERE DATE_FORMAT( datenaiss_enfant, '%m-%d' ) = DATE_FORMAT( NOW( ) , '%m-%d' )
LIMIT 0 , 30;

$resultat=mysql_query($query);

tu mets une boucle
while ($row=mysql_fetch_array($resultat)){

et tu affiches soit par un

echo $row[nom_du_champ]
?>
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
29 janv. 2015 à 14:35
En me relisant je vois une petite erreur :

remplacer la ligne :
$date_du_jour = date('d,m', time());
par
$date_du_jour = date('dm', time());

Cependant c'était surtout pour donner l'idée de comment faire.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié par jordane45 le 28/01/2015 à 23:15
Bonjour,
datenaiss_enfant sous la forme yyyy,mm,dd mais sans le format date

C'est à dire ?
Tu veux dire quoi pas : sans le format de date ?

ce qui me gêne également c'est que le formate DATE dans les BDD est : YYYY-MM-DD (pas de virgules...)

Bref.. si ton champ datenaiss_enfant n'est pas en DATE (dans la BDD).. il sera compliqué d'obtenir ce que tu veux.... et surtout.. ça montre un souci de conception !

En partant du principe que tu modifie cela (pour mettre donc un champ de type DATE ) .. il te suffira de faire une requête pour récupérer la liste des enfants ....

un truc du genre :
SELECT *
FROM enfant
WHERE DATE_FORMAT( datenaiss_enfant,'%m-%d') = DATE_FORMAT( NOW(),'%m-%d')


Cordialement,
Jordane
0