Aller au contenu

Sujets conseillés

Posté

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

Posté

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

Posté
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.

Posté

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

Posté

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...

Posté (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é par francoisch

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...