Accueil > Forum > > > > Validité...
Validité...
lundi 7 janvier 2008 à 23:05:30 |
Validité...

xeroxiss
|
Bonsoir, Je suis façe a un petit problème au niveau d'une insertion de date et de validation dans une base de donnée... Mon but est de créer une annonce par l'utilisateur et d'inserer la date afin de donner a l'annonce une validité de 4 semaine... Après quoi le membre peu soit, prolonger son annonce soit elle se supprime automatiquement... J'éspère que j'ai réussi a être claire, et que vous auriez des idées pour moi. Merci, bonne soirée 
|
|
mardi 8 janvier 2008 à 00:02:11 |
Re : Validité...

codefalse
|
Perso, pour éviter les problemes de date engendrés par MySQL et consor, je met un type int dans ma colonne date, et je lui envoie un timestamp unix (date depuis le 1er janvier 1970 en seconde). Les fonctions natives en php pour convertir un timestamp en jour/mois/année heure:minute:secondes sont super simples d'usage, et pour savoir si la date est dépassé de 4 semaines, tu n'a qu'a faire un date_dans_bdd < (time () + (60*60*24*7*4)) si oui alors ta news est dépassée ! :)
Je sais pas ce que diront les autres de ma méthode, mais j'en avais discuté avec Neige il me semble, et il pensais à peu pres pareil ! :)
Sur ce ! Bonne nuit ! :)
|
|
mardi 8 janvier 2008 à 00:22:39 |
Re : Validité...

malalam
|
Hello,
ma foi, je sais que beaucoup le font, mais je ne vois guère l'intérêt perso. Je ne vois pas ce que vous reprochez aux types DATE des bdd. Si tu fous un champ date, puis que dans ta requête tu fais un ...blabla...WHERE CURDATE() > DATE_ADD(date_validite_news, INTERVAL 4 WEEKS) ça marche sans doute aussi bien (pas testé là hien, à vérifier pour la syntaxe).
|
|
mardi 8 janvier 2008 à 03:33:40 |
Re : Validité...

coucou747
|
salut mysql prevoit des fonctions de gestion des dates sur des champs date et timestamp... alors pourquoi prendre un int ? /** * @author coucou747 <coucou747@hotmail.com> * @see irc://cominweb.uni-irc.net/#programmation */
|
|
mardi 8 janvier 2008 à 09:17:38 |
Re : Validité...

codefalse
|
@coucou747 : Parce que j'ai toujours galéré autrement :p (et surtout car j'ai jamais du approfondir la chose :p)
Sinon est-ce que c'est supporté par toutes les bdd's ? Genre la requete de Malalam est-elle ANSI ou juste spécialement faite pour MySQL ?
|
|
mardi 8 janvier 2008 à 09:55:18 |
Re : Validité...

malalam
|
Pas tout a fait. En même temps, aucune BDD actuelle n'étendent pas du tout le standard ANSI SQL92. DATE_ADD n'existe pas, chaque BDD a ses spécificités là-dessus. Et que je sache, sur mysql, le standard ne fonctionne pas (je crois que ce serait "champ_date + INTERVAL 4 WEEKS" ou un truc dans le genre). CURDATE() est aussi une spécificité mysql, mais ça reste un alias du standard CURRENT_DATE() qui fonctionne aussi sur mysql.
|
|
mardi 8 janvier 2008 à 10:06:22 |
Re : Validité...

codefalse
|
Ca devient paradoxal quand on tente de faire un systeme qui permet l'utilisation de différents serveurs sgbd, et que chaques serveurs implémentes leur méthode de requetes.. Au final je vois trois possibilités _ modifier les requêtes en fonction du type de sgbd (foireux !) _ faire des requetes génériques (mais pauvre en possibilité !) _ Approfondir les classes, en implémentant des méthodes select, upadte, delete, where, limit, etc ... lourd et pas forcément flexible (si le type veut faire des jointures de jointures de jointures avec des conditions poussées (comme Coucou747 aime les faires ;)), ca risque d'être vite impossible/lacata)
Par ailleurs, ca me fait penser à un truc Malalam. Dans ta classe d'abstraction Sgbd, tu propose une solution éventuelle mais à mon sens pas performante (j'aimerai ton avis sur la chose :)) quand à l'usage de Limit. Toi, tu le gère directement en Php. L'avantage, il est clair, c'est que les Sgbd qui n'implémentent pas la requete Limit, tu pourra quand meme les gerer et ca je ne peux pas le contredire. Mais le gros probleme c'est que ta méthode, pour une bdd qui possède 3.000.000 d'entrée par exemple, va récuperer ses 3.000.000 pour en afficher 10 ?, 20 ? Ca fait chère la requete nan ?
(Au passage, une requete Limit ne fait pas mieux puisque une "LIMIT 2.500.000, 20" ira trier les 2.500.020 premieres lignes !) (source, Nexen.net : http://www.nexen.net/actualites/tutorial/17953-pourquoi_la_pagination_coute_autant_de_performances.php)
|
|
mardi 8 janvier 2008 à 10:38:22 |
Re : Validité...

malalam
|
Faudrait savoir, lol, tu me parles de SQL ANSI et de système multi sgbdr, et ensuite tu critiques ma solution pour faire de la limitation de jeu de requête qui ELLE, est compatible avec toutes les BDD au profit d'une clause propriétaire (LIMIT je présume), comme tu le dis d'ailleurs.
Ma solution est rapide, quoi que tu en penses. Je l'utilise en prod sur un gros système. Et la raison pour laquelle je n'opte pas pour LIMIT est justement la suivante : LIMIT est propriétaire. Implémenter une technique propriétaire dans une classe d'abstraction de DB est un non sens. Tu remarqueras que j'ai donné 2 extensions : mysql, et mssql...mssql ne connait pas LIMIT. Et n'a pas d'équivalent (il y a TOP, mais ce n'est pas un équivalent du tout...c'est une clause de mer**). Voilà pourquoi j'ai utilisé les itérateurs :-) Au passage, tu ne fais qu'une requête sur 3 000 000 d'entrées, tu ne vas pas récupérer les resultats...et la requête en elle-même est LOIN d'être ce qu'il y a de plus coûteux.
Quant au SQL ANSI parfait, je te mets au défi de me montrer un seul site que tu aurais monté qui respecte parfaitement cette norme et dont les requêtes sont compatibles avec toutes les BDD. Bon enfin sauf si ton site fait 1 select sur 1 table hein lol.
Faut rester réaliste : il essayer de se coller à la norme dans le but de...juste au cas où... un jour on doive basculer sur un autre serveur de DB. Mais ne faire QUE du SQL ANSI pose problème. Et ce ne sera généralement pas optimisé pour TON serveur DB actuel (les clauses propriétaires sont svt optimisées).
Moi j'opte pourtant pour la 3ème solution. Les requêtes doivent être bien placées dans ton code, facile à retrouver et à modifier. Ca facilite une migration, justement. Mais ça va avec la 1ère : tu es obligé de modifier tes requêtes, sur un gros système, quand tu changes de DB. Au moins un minimum. Enfin ça dépend du type de requêtes hein...mais globalement, tu auras 2-3 ajustements à faire, forcément. Donc, il faut que ces requêtes soient faciles à retrouver et qu'elles soient évidentes.
|
|
mardi 8 janvier 2008 à 10:43:55 |
Re : Validité...

codefalse
|
"Faudrait savoir, lol, tu me parles de SQL ANSI et de système multi
sgbdr, et ensuite tu critiques ma solution pour faire de la limitation
de jeu de requête qui ELLE, est compatible avec toutes les BDD au
profit d'une clause propriétaire (LIMIT je présume), comme tu le dis
d'ailleurs." ==> en fait j'ai dérivé (j'ai tenté un changement de sujet, mais apparement je l'ai raté :p) C'est vrai que ta solution est compatible avec toutes les BDD je suis carément d'accord avec toi, mais je m'inquiétait de la lourdeur si tu prends de grosses quantitiées de données. Maintenant si tu dit que la requete en elle meme ne coute rien, que ce n'est que brasser les données qui coute chere, alors jte crois (et en plus vu que tu me le confirme avec l'usage que tu en fait, alors ca va !) :)
Note : Ce n'était pas une critique, mais une remarque (ou une critique au sens neutre (et non négatif !) du terme :))
(:
|
|
mardi 8 janvier 2008 à 11:04:46 |
Re : Validité...

xeroxiss
|
Re, Heu... Je suis un peu embêté de devoir "m'imposer" dans mon propre post lol  Non je rigole, vos messages sont bien intéressant et je suis désolé de faire irruption dans votre débat mais c'est que je suis vraiment débutant que je me suis permis de poster ici. Enfaite c'est avec ce genre de débat que je ne m'y suis pas retrouvé avec google ^^ Juste une petite question pour éclaircir mon espirt de boulet ^^ => La requête a effectuer à l'insertion est donc : INSERT INTO....VALUES ... WHERE CURDATE() > DATE_ADD(date_validite_news, INTERVAL 4 WEEKS) // ici action après 4 semaine ? Et ajouter un champ de types DATE dans la bdd ? Voilà merci beaucoup les gens ! Moi j'utilise Mysql (Php my admin) Hébergement OVH. Vive malam :p 
|
|
Cette discussion est classée dans : date, validité, annonce
Répondre à ce message
Sujets en rapport avec ce message
Select sur Date [ par couretjp ]
Bonjour,J'ai deux requette qui me remplisse chacune un tableau, mais voila, dans le premier tableau je n'ai plus d'enregistrement et dans le second ta
Date [ par fute ]
Salut à tous :-)Je voudrais savoir s'il y a un moyen de soustraire un nombre de jours à une date.Je m'explique:J'ai une date courante et je voudrais a
demande d'aide [ par youyou26 ]
bonjour j'ai un calendrier qui m'affiche des photo par date correspondante (par exp quand je clique sur le cal la date d'aujourd'hui il m'affiche la p
erreur de programmation mais je ne vois pas ou ? aidez-moi svp.. [ par netwebzone ]
Bonjour, J'aurais besoin de votre aide pour trouver l'erreur dans mon code, je n'arrête pas de le reprendre mais je ne vois toujours pas ou ca va pas,
Vérifier si une date de naissance est valide [ par runan ]
Bonjour, Je voudrais vérifier si une date à bien exister dans le passé genre : est-ce que le 29/02/1942 a existé ? Tout ça pour
Convertir TimeStamp en date dans un tableau excel [ par dreaman ]
Convertir TimeStamp en date dans un tableau excel basic
Un opérateur pour alimenter une colonne "date" [ par laubro ]
Bonjour,Y aurait il un opérateur qui permettrait d'alimenter la colonne d'une table ? je m'expliquedans une table X on créer un champs "date" par exem
selection date actuelle [ par jmbabi ]
Bonjour à tous Ma requete actuelle c'est :/*Création avec une requête table calendrier dont les champs sont : ref, pre1, date1, pre2, date2, descr, l
Upload image avec base de données [ par gimlirc ]
Je vais expliquer en 2 mots mon probleme et je vais y mettre tout le code derriere.Donc, je voudrais faire une page d'insertion de donnée vers une tab
Ajouter la date automatiquement [ par brezoneg ]
Bonjour,Je voudrais pouvoir ajouter automatiquement la date à chaque enregistrement d'un champ de formulaire. ( dans base mysql) Cela est-il possible
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|