Bonjour.
Dans ma base de donnée j'ai un champ DatedeCreation. Je voudrai savoir si la date indiqué dans de plus de 1 mois, ou plus de 3 mois. Mais je ne sais pas comment faire!
Pouvez-vous m'indiquer la meilleure solution svp?
Merci bien
Bonjour.
Dans ma base de donnée j'ai un champ DatedeCreation. Je voudrai savoir si la date indiqué dans de plus de 1 mois, ou plus de 3 mois. Mais je ne sais pas comment faire!
Pouvez-vous m'indiquer la meilleure solution svp?
Merci bien
Est-ce que tu veux filtrer les enregistrement surcle critère de date ou bien filtrer les enregistrements d'apres d'autres criteres puis etudier leur date ?
Pourrais-tu nous redonner ton critere parce qu'il manque des mots dans ta phrase ?
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Oups en effet il y a un souci dans ma question.
Donc je m'explique mieux:
J'ai une base avec un champs couleur et un champs DateCreation.
Si la DateCreation est entre 1 et 2 mois, couleur = orange
Si la DateCreation est supérieur à 3 mois, couleur = rouge.
J'ai fait le code suivant mais il ya une erreur sur le signe '-' dans mes if (apparement je ne peux pas soustraire le mois récuperé et le mois d'aujourd'hui:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 if(isset($_POST['update'])) { include("connection.php"); $query = "SELECT * FROM offre "; $result = mysql_query($query); while($rs_row=mysql_fetch_array($result)) { $Id = $rs_row['Id']; $Datecrea=split("-" ,$rs_row['DateCreation']); if ($Datecrea[1] - date(m) > 3 ) { $query = "UPDATE offre SET Couleur= 'rouge' WHERE Id = '$Id' " ; } else { if ($Datecrea[1] - date(m) > 2 ) { $query = "UPDATE offre SET Couleur='orange' WHERE Id = '$Id'"; } else { if ($Datecrea[1] - date(m) > 1 && $Datecre[1] - date(d) > 1 ) { $query = "UPDATE offre SET Couleur='orange' WHERE Id = '$Id'"; } } } $result = mysql_query($query); mysql_close(); } }
Mon erreur précise:
Notice: Use of undefined constant m - assumed 'm' in D:\PHP\updateDB.php on line
Il me l'affiche pour chaque if!!
ca serait date('m') et non date(m) mais de toute facon ca ne fonctionnerait pas : date('m') donne le numero du mois.
Regarde plutôt comment tu peux faire directement en SQL :
Par contre je vois eventuellement un probleme de logique : si la couleur est défini selon la date de création, a quoi cela sert-il de stocker et mettre a jour cette couleur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE offre SET couleur = 'rouge' WHERE DateCreation > DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
Je veux dire qu'il me suffit de lire la date de création pour savoir quelle couleur doit s'appliquer.
De plus supposons que la mise à jour n'est pas été faite, les couleurs sont fausses.
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Merci beaucoup
Je vais essayer directement en sql
Super
Donc voici le code complet pour ceux qui veulent le faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php if(isset($_POST['update'])) { include("connection.php"); $query = "UPDATE offre SET couleur = 'vert' WHERE DateCreation < DATE_SUB(CURDATE(), INTERVAL 1 MONTH)"; $result = mysql_query($query); mysql_close(); include("connection.php"); $query = "UPDATE offre SET couleur = 'orange' WHERE DateCreation < DATE_SUB(CURDATE(), INTERVAL 2 MONTH)"; $result = mysql_query($query); include("connection.php"); $query = "UPDATE offre SET couleur = 'rouge' WHERE DateCreation < DATE_SUB(CURDATE(), INTERVAL 3 MONTH)"; $result = mysql_query($query); } ?>
Salut,
Je suis d'accord avec sabotage, aucun interêt de stocker la couleur en table, car elle ne seras jamais à jour, il faut la déterminer au moment de l'affichage.
Enfin ya peut-être une raison qui m'échappe.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager