[RESOLU] Mise en forme des dates

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Mise en forme des dates

Re: [RESOLU] Mise en forme des dates

par FabienB » 07 sept. 2023, 11:53

Yes, merci beaucoup :)

Je passe le sujet en résolu !

Re: Mise en forme des dates

par two3d » 07 sept. 2023, 11:47

Tu fais la requête UPDATE à l'inverse : là où est NULL tu modifie en 0000-00-00 (au lieu de ce que j'avais proposé "là où est 0000-00-00, mettre en NULL).

Re: Mise en forme des dates

par FabienB » 07 sept. 2023, 11:37

Superbe ! Là, on est tout bon !

Dernières petites questions histoire d'éclaircir mes derniers doutes :
- la requête SQL n'a donc plus d'intérêt ?
- dans phpmyadmin, j'ai indiqué la valeur par défaut sur "0000-00-00", mais est-ce que je dois aussi laisser la case "Null" de cochée ou ce n'est plus la peine ?

Merci beaucoup two3d ! =D>

Re: Mise en forme des dates

par two3d » 07 sept. 2023, 11:18

Oui, dans ta conditions, rajouter une condition :
if($row["Date_de_tournageIN"] === NULL || $row["Date_de_tournageIN"] == '0000-00-00')
Mais je te conseil du coup de mettre la valeur par défaut 0000-00-00 au lieu de NULL et de faire qu'une seule condition :
if($row["Date_de_tournageIN"] == '0000-00-00')

Re: Mise en forme des dates

par FabienB » 07 sept. 2023, 11:08

Bonjour two3d, voici le résultat de mes tests :
cela fonctionne (presque !) parfaitement. La table se met à jour comme il faut, j'obtiens la phrase "A remplir" là où je n'ai pas de date mais, par contre, si je décide de finalement supprimer une date sur une fiche de film, le 0000-00-00 revient et je dois alors refaire une requête SQL pour remettre à jour et de nouveau afficher "A remplir".
Pour préciser le contenu du site : les fiches de film sont modifiables à tout moment, et il suffit d'ailleurs juste de modifier une cellule (nom du réal par ex.) pour que le 0000-00-00 revienne dans les cellules de dates encore vides.

Y-t-il un moyen de revenir automatiquement sur la valeur "A remplir" si une date est finalement supprimée, sans avoir besoin de refaire une requête SQL dans phpmyadmin ? (le site est utilisé par plusieurs personnes qui n'ont pas accès aux codes, d'où ma demande d'automatisation :wink: )

En tout cas merci de ton aide, je n'aurais jamais trouvé la requête SQL tout seul :priere:

Re: Mise en forme des dates

par two3d » 06 sept. 2023, 16:54

Tu le vois, si tes anciennes valeurs sont 0000-00-00, la requête est toujours valable, si c'est autre chose comme valeur, modifie la requête en remplaçant 0000-00-00 par la valeur en question.

Re: Mise en forme des dates

par FabienB » 06 sept. 2023, 15:49

Oui, cette valeur 0000-00-00 (ou d'ailleurs -62169984000 parfois, en fonction de si je retire le dd / mm /Y, strtotime) s'affiche sur Wordpress si aucune date n'est enregistrée, mais la valeur par défaut était pourtant réglée sur "Aucun(e)" dans Phpmyadmin jusqu'au moment où je l'ai passée sur NULL.

Ton conseil de requête SQL est toujours valable malgré ça ?

Re: Mise en forme des dates

par two3d » 06 sept. 2023, 13:55

Tu parlais d'une donnée par défaut : 0000-00-00

Si ta colonne avait cette valeur par défaut avant la mise en place de la valeur par défaut NULL, fais une requête SQL dans phphMyAdmin :

Code : Tout sélectionner

UPDATE ta_table SET Date_de_tournageIN = NULL WHERE Date_de_tournageIN = '0000-00-00'

Re: Mise en forme des dates

par FabienB » 06 sept. 2023, 13:39

Ah mince, donc je dois créer des nouvelles lignes dans PhpmyAdmin ?
Car la case à cocher lorsque je modifie une ligne est bien présente + l'option "Valeur par défaut" que je mets sur NULL.
Car j'ai déjà beaucoup de données enregistrées dans celles déjà existantes :?

Ça se complique déjà un peu plus du coup :lol:

Re: Mise en forme des dates

par two3d » 06 sept. 2023, 12:44

Oui, c'est bien la colonne qui fait mais il te faut savoir que tes lignes déjà présentes dans ta table ne seront pas mises en NULL automatiquement, seulement les nouvelles après avoir renseigné NULL comme défaut, du coup il te faut tester sur une ligne de mettre NULL en modifiant cette ligne tu aura une case à cocher "[ ] NULL", tu coche, tu essaye ;)

Re: Mise en forme des dates

par FabienB » 06 sept. 2023, 11:05

Arf oui, tout bêtement... :lol:

Malheureusement, j'obtiens toujours le même résultat (30 / 11 / -0001), comme si le NULL n'était pas pris en compte... ?
Je n'ai pas encore fait la modif sur la ligne "Date de tournage OUT" (et les autre lignes Date non présentes dans mon morceau de code ici), et je n'ai aucune différence.
Etonnant #-o

PS : j'ai indiqué la valeur par défaut NULL dans PhpMyAdmin, c'est bien l'endroit auquel tu pensais, two3d ?

Re: Mise en forme des dates

par two3d » 06 sept. 2023, 10:32

tu as mal fermé ta balise PHP à la condition :

...ageIN"]));[ici manque le "?"]>...

Re: Mise en forme des dates

par FabienB » 06 sept. 2023, 10:16

Hello two3d,

Effectivement, je n'avais aucune valeur par défaut dans les colonnes de dates, je me suis justement posé la question hier si je devais mettre quelque chose.
J'ai donc mis NULL et j'ai ajouté ton code, mais la page m'indique toujours "Il y a eu une erreur critique sur ce site. (je précise d'ailleurs que le site est simplement hébergé via Wordpress, si ça peut aider ?)

Mais le problème vient sûrement de la façon dont j'ai modifié le code. J'ai encore du mal à capter comment rajouter le if dans un code 8-| :
<?php
$i=0;
while($row = mysqli_fetch_array($result)) {
?>

<center><div><b style="font-size: 27px;"><?php echo $row["Nom_du_programme"];?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b>

<center><div style="background-color:#0c9ef5; width:60%; font-size: 20px;"><b>Tournage</b></div></center>
<center>
  <table style="width:60%; border: 2px solid #0c9ef5">
    <tr><td style="padding-left: 10px; background-color:#f3f3f3"><b>Début du tournage</b></td> <td style="padding-left: 10px;"><?php if($row["Date_de_tournageIN"] === NULL)
echo "A remplir";
else
echo date('d / m / Y', strtotime($row["Date_de_tournageIN"]));></td>
    <tr><td style="padding-left: 10px; background-color:#f3f3f3"><b>Fin du tournage</b></td> <td style="padding-left: 10px;"><?php echo date('d / m / Y', strtotime($row["Date_de_tournageOUT"])); ?></td>
  </table>
</center>

<?php
}
}
mysqli_close($link);
?>

Re: Mise en forme des dates

par two3d » 06 sept. 2023, 00:16

@or1 : c'est bien d'aidé mais ta réponse est incomplète, d'où tu sors ta variable $datedebut ?

@FabienB : quelle est la valeur par défaut de ta colonne SQL Date_de_tournageIN ? Je te conseil de la mettre en NULL par défaut, puis de faire une simple vérification/condition PHP :
if($row["Date_de_tournageIN"] === NULL)
echo "A remplir";
else
echo date('d / m / Y', strtotime($row["Date_de_tournageIN"]));

Re: Mise en forme des dates

par FabienB » 05 sept. 2023, 16:58

Si je remplace simplement comme tu l'indiques, cela ne fonctionne pas (la page ne charge même plus).
Et je me demande du coup : comment la date va pouvoir être affichée si le code n'indique plus d'aller la récupérer dans la cellule "Date_de_tournageIN" ?

(J'ai oublié de préciser que les données (dates, nom du film, réal, caméra, etc...) sont enregistrées dans PhpMyAdmin à travers un formulaire à remplir, toujours dans cette Base de donnée.)

Désolé si je ne comprends pas tout, je suis vraiment débutant :lol:
PS : je n'avais pas vu le sujet "SQL et Base de données", peut-être que mon sujet aurait été plus approprié là-bas ?