|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Bonjour,
J'ai 3 images old.png / new.png et perim.png, dans ma table j'ai deux champss "date_du" et "date_au", comment faire pour affiché une des images selon la date explication: Exemple 1: Nous sommes le 27/12/11 Date_du 26/12/11 Date_au 28/12/11 Je doit affiché l'image nouv.png Exemple 2: Nous sommes le 27/12/11 Date_du 24/12/11 Date_au 26/12/11 Je doit affiché l'image perim.png Exemple 3: Nous sommes le 27/12/11 Date_du 29/12/11 Date_au 30/12/11 Je doit affiché l'image proch.png en faite cela : Citation:
Merci de vos lumières car la j'avoue ne pas savoir ou commencé. |
|
|
|
00
|
|
|
#2 | ||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Bon ya pas foule, apparement se serai avec "mktime" http://php.net/manual/fr/function.mktime.php par contre je ne voit pas comment l'inclure dans mon script déjà présent :
Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 726 ![]() |
Re
Fais des recherches du genre "MySQL select switch case" (grosso modo), tu devrais trouver des infos/exemples. Juste un exemple : Code sql :
(Les conditions des case sont pour exemple (la fatigue ), donc à adapter).
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Merci a toi je fonce trouvé cela
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Malgré de nombreuses recherches et de nombreuses lectures (suite à ton aide) je ne trouve pas comment faire cette choses.
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() |
Bonsoir,
L'approche de RunCodePhp est très bonne, je te propose une autre alternative : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 726 ![]() |
Citation:
Ca m'a un peu dérangé de proposer ce code, car l'alternative (la logique) dans la requête se base en partie sur des éléments de vues, des images. Dans un concept (ou design patern) comme MVC (Model View Controller), il n'est théoriquement pas correcte ou judicieux de mélanger des données de type vue ou modèle. La raison est simple : Si un jour on renomme une des images, voire en supprimer une, c'est la requête SQL qui tombe à l'eau. Ca peut être un vrai casse-tête de déboguer le code. Il est peut plus simple, voir plus logique de faire cette alternative au niveau de la vue, ou du controller. De plus, si on estime que le risque est assez important que ces images soient renommer ou supprimer un jour, on peu toujours rajouter une petite sur-couche de code, comme vérifier l’existence des ces fichiers (file_exist()), et générer une erreur au cas où une n'existerait pas (genre trigger_error()). Grosso modo, on s'aide soit même à déboguer plus facilement/rapidemment son code. Citation:
Fallait juste adapter un peu au niveau des 3 conditions. Un case en SQL fonctionne de la même manière qu'un switch case en Php, ce n'est que des alternatives, la logique est la même, c'est comme des successions de if | else if | else. En résumer, ce n'est qu'une question de logique pure et dure (faut pas chercher plus compliqué que cela est). Mais exploite plutôt le code de rawsrc, pour les raisons que j'ai évoqués précédemment. Ceci dit, en te basant sur le code de rawsrc (sa logique), essai de rectifier/tranposer les conditions de mon code au niveau du SQL, c'est un bon exercice
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#8 | ||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Merci à vous deux je regarde cela
Edition: En faite le truc que je ne comprend pas surtout au niveau du fonctionnement (je n'ai pas cherché de tutos ou de scripts tous fait, j'explique : Citation:
Je ne comprend pas comment faire pour mettre une des images selon le statut d'une des dates d'une consigne se trouvant dans le lien. Citation:
|
||
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 726 ![]() |
Citation:
A savoir que tu ne l'avais pas évoqué. Si, pour afficher la bonne image il faut non seulement tenir compte des 2 dates (du - au) mais aussi de la valeur du statut, il faudrait rajouter cette donnée dans la requête (le SELECT), pour après, l'exploiter dans les alternatives. (A savoir que plus il y aura de paramètres à tenir compte, plus il y aura d'alternatives). Quelle valeur peut avoir ce statut ? 0 ou 1 ? Qu'est ce qu'il faut faire (ou afficher comme image) selon ces date et statut ? Si tu parviens à bien exprimer toutes les conditions (comme ton 1er post), normalement le Php devrait facilement se transposer. Citation:
Est-ce normal ? A savoir que, (selon ce modèle de Bdd ci-dessus), s'il y a plusieurs date de consigne pour un même client + même statut + lire (les 3 réunis, j'insiste), alors on aurait une relation 1,n sur cette donnée là, par conséquent on peu envisager de sortir cette donnée de cette table pour créer une table dédiée (genre consigne_client). Par la suite ça peu facilité les requête SQL pour rechercher la bonne date de consigne selon telle ou telle condition. Mais c'est pure réflexion, faut voir.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#10 | ||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Salut à toi
Quand je parle de Statut c'est en faite le nom de la colonne qui correspond à l'affichage d'une des 3 images . Citation:
Citation:
|
||
|
|
00
|
|
|
#11 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 726 ![]() |
Citation:
Faudrait éclaircir ce point là, car ça devient flou. Est-ce que ceci est la réalité, ta structure de table : Citation:
NB : J'ai rajouter quelques remarque dans mon post précédant, pas certain que tu l'ai lu, ça peut être une idée.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#12 | |||||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
En effet c'est très brouillons parfois et je m'en excuse, pour plus de simplicité voici ma table qui je pense va éclaircire certains points :
Citation:
CLIENT | DATE DERNIÈRE CONSIGNE | STATUT | LIRE ID CLIENT | datej | Image Statut | LIEN via ID Requête pour faire mon tableau (en cours de refonte): Code :
Ici toutes les consignes du client sélectionné via l'ID dans un tableau : datej => Date de création datec => Date du contact avec le client pour donné la consigne date_du => Date Début de la consigne date_au => Date de Fin de la consigne consignes => La consigne et cela par le nombre de consigne Donc dans mon tableau j'aimerai affiché une des images en fonction des dates de consigne du client qui correspond a la ligne de mon tableau. Code complet pour affichage tableau Code :
Voila je pense que toutes les données y sont |
|||||
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 726 ![]() |
Ok, c'est mieux d'avoir ça sous les yeux.
Question à tout hasard. Je remarque que tu as un idtypeconsignes. Est ce que le type de consigne ne définirait pas la plage de date, une durée de consigne (date_du, date_au) ? Ou dit autrement, est-ce obligatoire de définir (voir redéfinir) pour chaque consigne (donc à chaque fois) une plage de date ? De mon coté j'ai tendance à penser que ce n'est pas la consigne qui définirait cette durée, mais le type. Toujours est il que s'il y a moyen de ne pas avoir cette donnée là dans cette table, ça devrait facilité les choses. Mais il faut en être certain, il suffit qu'il y ait 1 seule consigne, et là ce n'est plus bon (ton modèle est le bon). Cependant, en admettant qu'il soit obligatoire d'avoir cette plage de date pour chaque consigne, on peu aussi envisager de ne pas définir 2 dates (date_du, date_au), mais une durée, comme un timestamp. Comme mettre 1 jour, soit 86400 secondes (car un timestamp c'est en secondes). Comme les comparaisons sont faites selon la date en cours, ça peu facilité les traitements. Faut voir. Mise à part tout ça, ta structure de table me semble correcte. As tu essayer d'intégrer le code que t'as donné rawsrc ? Entre autre ceci : Code rawsrc :
DATE_FORMAT(date_du, "%Y%m%d") AS dateDu, DATE_FORMAT(date_au, "%Y%m%d") AS dateAu (n'oublie pas que les alias ça facilite la création du code SQL) Dans ton code ci-dessus, tu fais toujours un SELECT *
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#14 | |||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Merci à toi pour ta rapidité
Citation:
Citation:
Citation:
|
|||
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 726 ![]() |
Citation:
Citation:
Théoriquement tu as tous les éléments, entre l'ancien topic pour les alias et le code de rawsrc, tu devrais parvenir à produire le tableau que tu veux. Juste par curiosité, si c'est pas indiscret, c'est quoi les consignes ? Des bouteilles (eau, vin, ...), bouteilles de gaz, objets perdus ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#16 | |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Bon ba je m'occupe du bib de ma fille et yaquacodéetsurtoutseprendrelatete
![]() Citation:
|
|
|
|
00
|
|
|
#17 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Re moi,
Après moultes et moultes essais je n'arrive pas a faire ce que je souhaite malgré l'aide que vous m'avez fournit... c'est grave ... j'en pête un cable |
|
|
00
|
|
|
#18 | ||
|
Expert Confirmé
![]() ![]() |
Bonjour,
allez j'ai repris ton code, dépieutes le. Je te conseille fortement de séparer ta mise en page de tes données : déportes toute la mise en page dans un fichier .css tu y gagneras en lisibilité Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#19 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Merci à toi tu m’hallucine la, mon CSS est fait mais je n'ai pas encore fini, concernant le code cela fonctionne a 2/3 truc pret :
- Mes consignes Permanente on des dates 0000/00/00 pour les deux champs mais la diode est verte. Dans tous les cas un tres grand merci a toi Edition: je sais pourquoi : J'ai enlevé la partie perim.gif car en faite celle ci n’était pas utile et cela fesais merdé le code apparement si je renome le perim.gif en proch.gif cela fonctionne de nouveau Edition 2: Ba non le 0000/00/00 des date me fait déconer le truc je vais regardé cela pour eclure cette date ou voir ne prendre en compte qu'a partir de la date du jour. Dans tous les cas un grand merci a toi |
|
|
00
|
|
|
#20 | |
|
Expert Confirmé
![]() ![]() |
Citation:
Testes ton sql en dehors du php, assures-toi que des données valides sont bien renvoyées.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com