Partage
  • Partager sur Facebook
  • Partager sur Twitter

selectionner si date superieur date jour

Sujet résolu
30 octobre 2009 à 9:45:07

Bonjour a tous, je voudrais selectionner dans ma table, toutes mes données lorsque la date contenue dans le champs 'date_validite_produit' -qui est un champs de type date- n'est pas encore dépassée par la date actuelle ou lorsque ce champs est vide...

je fais bien un

<?php
mysq_query("select * from produit where date_validite_produit< date(a-m-j) ")

mais ca fais rien du tout ca...

comment faire siouplais?

merchi!
  • Partager sur Facebook
  • Partager sur Twitter

dune jeu point and click réalisé en PHP/MYSQL/JQUERY : Dune - Moneo au service de l'Empereur-dieu

30 octobre 2009 à 9:47:07

SELECT * FROM produit WHERE date_validite_produit > CURDATE()
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 9:48:46

<?php
mysq_query("select * from produit where date_validite_produit< " . date(Ymd))
?>


Essaie plutot ça...
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 9:50:06

laquelle des deux est la mieux? ca prends si le champs est vide ? en terme ressource ...la mieux est?


de tte facon je vais tester les deux...
  • Partager sur Facebook
  • Partager sur Twitter

dune jeu point and click réalisé en PHP/MYSQL/JQUERY : Dune - Moneo au service de l'Empereur-dieu

30 octobre 2009 à 9:52:22

La mienne est mieux, de toutes façons celle de MyLordAngus marchera pas...
Après, tu veux faire quoi si le champ est vide ?
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 9:52:24

Je dirais plutot ma proposition, car je pense que c'est mieux de laisser php calculer la date actuelle, que en sql.
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 9:55:06

si le champs est vide on selectionne... ca prevoit ce cas ?
  • Partager sur Facebook
  • Partager sur Twitter

dune jeu point and click réalisé en PHP/MYSQL/JQUERY : Dune - Moneo au service de l'Empereur-dieu

30 octobre 2009 à 9:57:42

Quand tu dis il est vide, c'est qu'il vaut NULL ?
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 10:00:46

Citation : 999888

La mienne est mieux, de toutes façons celle de MyLordAngus marchera pas...
Après, tu veux faire quoi si le champ est vide ?



Hum tu m'as mis dans le doute, alors je l'ai testé, et cela marche parfaitement. Et cela prend même en compte les champs vides (pas si vides que ça, car mysql les pré remplis avec 0000-00-00).
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 10:02:04

Citation : MyLordAngus

Je dirais plutot ma proposition, car je pense que c'est mieux de laisser php calculer la date actuelle, que en sql.



MDR !!!

le langage SQL possède des fonctions internes plus puissantes que le PHP et te permette de renvoyer des secondes à partir de la différence de 2 datetime. Plus de calcul approximatifs dans le php.

Maintenant:

http://dev.mysql.com/doc/refman/5.0/fr [...] unctions.html

à toi de voir.
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 10:05:13

:D

yow, je vais donc prendre la soluce 999888...

arf, malheureusement ca gere pas les dates vide (a savoir 0000-00-00)

bon, vais voir quand meme

:)
  • Partager sur Facebook
  • Partager sur Twitter

dune jeu point and click réalisé en PHP/MYSQL/JQUERY : Dune - Moneo au service de l'Empereur-dieu

30 octobre 2009 à 10:15:10

Pour gérer tes "dates vides" tu pourrais faire un truc dans le genre :
SELECT *
FROM produit
WHERE COALESCE(date_validite_produit, CURDATE() + INTERVAL 1 DAY) > CURDATE()

Mais il faudrait que ton champ vaille NULL et pas 0000-00-00, mais tu peux faire ça aussi :
SELECT *
FROM produit
WHERE IF(date_validite_produit <> '0000-00-00', date_validite_produit, CURDATE() + INTERVAL 1 DAY) > CURDATE()

Mais bon tout ça c'est un peu moche, tu ne devrais à priori pas avoir de valeur 0000-00-00.
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 10:18:55

^^

merci mais ca fait une demie heure que j'essaie sans resultat : mon champs date, lorsqu'il est vide vaut toujours '0000-00-00' meme quand je coche la case 'null'....

ca m'enerve! :lol:
  • Partager sur Facebook
  • Partager sur Twitter

dune jeu point and click réalisé en PHP/MYSQL/JQUERY : Dune - Moneo au service de l'Empereur-dieu

30 octobre 2009 à 10:24:44

Il faut que tu mettes DEFAULT à NULL et cocher NULL.
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 10:25:46

<?php
$requete = 'SELECT * FROM produit WHERE date_validite_produit > CURDATE() OR date_validite_produit = '0000-00-00';
?>


Certes c'est pas élégant, mais ça peut contourner ton problème non? (a savoir sélectionner les produits dont la date de validité est supérieure à la date actuelle, plus ceux dont la date de validité n'a pas été renseignée)
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2009 à 10:38:16

:D


merci merci beaucoup a tous!!!!
  • Partager sur Facebook
  • Partager sur Twitter

dune jeu point and click réalisé en PHP/MYSQL/JQUERY : Dune - Moneo au service de l'Empereur-dieu

18 février 2024 à 11:46:22 - Message modéré pour le motif suivant : Message complètement hors sujet


18 février 2024 à 11:57:27

@InoussaZERBO Bonjour, merci de ne pas squatter le sujet résolu des autres, créer votre propre sujet dans le respect des règles du forum à savoir qu'un message commence par des règles de politesses (Un bonjour ou des salutations à la communauté et se termine par des remerciements par avances pour les futures réponses), la description de votre problème et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'intégration de code soit le bouton code </>.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Liens conseillés

Je ferme ici.

  • Partager sur Facebook
  • Partager sur Twitter