francoisch Posté 4 Juin 2008 Posté 4 Juin 2008 Bonjour Avec la donnée dune colonne date (par ex. : 03/05/2008), je construis en Php la donnée $date1 dune colonne date1 (2008-05-03) ; jai 7000+ lignes comme ça. Dans mon code Php, je mets des Print qui vérifient que les valeurs de ma donnée $date1 sont bien construites. Mon ordre MySql : $requete2 = "UPDATE compteur SET date1='$date1' "; La colonne date1 est définie : varchar, 10, null=oui. Résultat : chaque ligne de la colonne date1 = la date daujourdhui (2008-06-04), ce qui nest évidemment pas ce que jattend. Jai essayé différentes variantes, sans succès. Merci par avance de vos conseils. Francois
Portekoi Posté 4 Juin 2008 Posté 4 Juin 2008 Bonjour, 1 - Pourquoi la colonne Date1 n'est pas au format Datetime? 2 - Pourquoi les 7000 enregistrements doivent ils tous avoir la même date? Portekoi
Dan Posté 4 Juin 2008 Posté 4 Juin 2008 Mon ordre MySql : $requete2 = "UPDATE compteur SET date1='$date1' "; Si tu ne mets pas de clause pour restreindre cette opération ("where id=... " par exemple) tu mets à jour le champ date1 pour toutes les entées.
francoisch Posté 4 Juin 2008 Auteur Posté 4 Juin 2008 bonjour Chaque enregistrement a 4 champs, dont: - date: , le 3e champ, avec une date de format mal foutu, pas toujours renseigné - date1: le 4e champ, dans lequel je transforme en Php le contenu de date pour arriver à un format AAAA-MM-JJ, qui sera bon pour un tri plus tard Après avoir lu la table, je fais ça avec: while ($myrow = mysql_fetch_row($result)) { if($myrow[2] > 0) { $date1 = substr($myrow[2],6,4)."-".substr($myrow[2],3,2)."-".substr($myrow[2],0,2); $requete2 = "UPDATE compteur SET date1='$date1' "; $result2 = mysql_query ($requete2, $connexion); } } en vous épargnant les Print de vérification. Voila donc quelques infos de plus; vous comprenez que cette date est variable suivant les enregistrements, la date à laquelle chacun a été créé. Pour le format DATE, je ne suis pas sûr d'en avoir besoin. A votre avis, que faire? Francois
Portekoi Posté 4 Juin 2008 Posté 4 Juin 2008 Mais comme le dit Dan, si tu ne mets pas de clause "Where", la requête affectera tous les champs de ta table... Et comme ton champ contient une date, elle est normal que le format soit de type.... date Sinon, j'ai pas compris le soucis...
francoisch Posté 4 Juin 2008 Auteur Posté 4 Juin 2008 (modifié) bonjour et merci de ta réponse. Je ne comprend pas tout: - Oui, ma donnée est une date mais, tant que je ne le dis pas à MySql en précisant le format DATE, il n'y a que moi qui le sache donc il doit le traiter comme du Varchar classique - sur chaque ligne, j'ai ces deux champs, date et date1, je prend le contenu de l'un, je le réarrange et je fais le SET pour mettre ce contenu dans l'autre champ Question: - que puis je mettre dans la clause Where? je ne vois pas puisque je veux bien mettre à jour chaque ligne, sauf si date y est vide. Merci par avance de bien vouloir m'éclairer. Francois Modifié 4 Juin 2008 par francoisch
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant