Base de données sql et problème de dates
Résolu/Fermé
remib74
Messages postés
15
Date d'inscription
dimanche 25 novembre 2012
Statut
Membre
Dernière intervention
20 octobre 2015
-
28 nov. 2012 à 10:22
remib74 Messages postés 15 Date d'inscription dimanche 25 novembre 2012 Statut Membre Dernière intervention 20 octobre 2015 - 29 nov. 2012 à 00:37
remib74 Messages postés 15 Date d'inscription dimanche 25 novembre 2012 Statut Membre Dernière intervention 20 octobre 2015 - 29 nov. 2012 à 00:37
A voir également:
- Base de données sql et problème de dates
- Formules excel de base - Guide
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Base de registre - Guide
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Reinstaller windows sans perte de données - Guide
5 réponses
Utilisateur anonyme
28 nov. 2012 à 11:24
28 nov. 2012 à 11:24
Bonjour
Il te manque des quotes autour de la date dans ta requête :
Il te manque des quotes autour de la date dans ta requête :
mysql_query('UPDATE sale SET date_vente="'.$neudate.'"');
Utilisateur anonyme
28 nov. 2012 à 13:41
28 nov. 2012 à 13:41
Remets des - à la place des , dans les dates. Je me demande bien où tu es allé cherccher ces virgules...
par contre toutes les entrées date_vente de la table 'sale' passent en 2012-11-12 je me demande pourquoi mais cela a surement a voir avec le format de la colonne date
Si tu as partout la même date, c'est qu'il n'y a pas de WHERE dans ton UPDATE, donc l'update est appliqué à toute la table. La date que tu vois est la dernière traitée.
J'espère que tes lignes ont un "id" pour que tu puisses faire ' WHERE id='. $data[id]
par contre toutes les entrées date_vente de la table 'sale' passent en 2012-11-12 je me demande pourquoi mais cela a surement a voir avec le format de la colonne date
Si tu as partout la même date, c'est qu'il n'y a pas de WHERE dans ton UPDATE, donc l'update est appliqué à toute la table. La date que tu vois est la dernière traitée.
J'espère que tes lignes ont un "id" pour que tu puisses faire ' WHERE id='. $data[id]
remib74
Messages postés
15
Date d'inscription
dimanche 25 novembre 2012
Statut
Membre
Dernière intervention
20 octobre 2015
Modifié par remib74 le 28/11/2012 à 11:40
Modifié par remib74 le 28/11/2012 à 11:40
Merci le père,
effectivement cela marche mieux.
mais j'obtiens un résultat étrange, a savoir que la fonction echo renvoit :
2012,08,31
2012,05,31
2012,05,31
2012,05,31
2012,04,30
donc les dates sont bien ordonnées
par contre toutes les entrées date_vente de la table 'sale' passent en 2012-11-12 je me demande pourquoi mais cela a surement a voir avec le format de la colonne date et l'entrée que j'essaye d'inserer en update. J'ai vue que certains convertissaient les chaine de caractères a l'aide de la fonction (strtotime).
J'ai un deuxième code ici qui donne le même résultat (2012-11-12)
<?php
$bdd = mysql_connect('localhost', 'root', '');
mysql_select_db('solid_pro',$bdd);
mysql_query("SET NAMES 'utf8'");
$sql = 'SELECT * FROM sale ';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
$i=0;
while($data= mysql_fetch_array($req) ){
$rest1 = substr($data["date_vente"], 0,2); // retourne 20
$rest2 = substr($data["date_vente"], 8,2); // retourne 12
$rest3 = substr($data["date_vente"], 5,2); // retourne -08-
$rest = substr($data["date_vente"], 2,2); // retourne 31
$datetoday=$data["date_vente"];
$datealso=date('2012-m-d');
if($datetoday!=$datealso){
//$neudate=$data["date_vente"];
$neudatea='2012,'.$rest3.','.$rest.'';
echo date($neudatea).'<br>';
//$neudate=date($neudatea);
mysql_query('UPDATE sale SET date_vente="'.$neudatea.'"');
$i++;
}
}
?>
merci pour votre aide en tout cas
effectivement cela marche mieux.
mais j'obtiens un résultat étrange, a savoir que la fonction echo renvoit :
2012,08,31
2012,05,31
2012,05,31
2012,05,31
2012,04,30
donc les dates sont bien ordonnées
par contre toutes les entrées date_vente de la table 'sale' passent en 2012-11-12 je me demande pourquoi mais cela a surement a voir avec le format de la colonne date et l'entrée que j'essaye d'inserer en update. J'ai vue que certains convertissaient les chaine de caractères a l'aide de la fonction (strtotime).
J'ai un deuxième code ici qui donne le même résultat (2012-11-12)
<?php
$bdd = mysql_connect('localhost', 'root', '');
mysql_select_db('solid_pro',$bdd);
mysql_query("SET NAMES 'utf8'");
$sql = 'SELECT * FROM sale ';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
$i=0;
while($data= mysql_fetch_array($req) ){
$rest1 = substr($data["date_vente"], 0,2); // retourne 20
$rest2 = substr($data["date_vente"], 8,2); // retourne 12
$rest3 = substr($data["date_vente"], 5,2); // retourne -08-
$rest = substr($data["date_vente"], 2,2); // retourne 31
$datetoday=$data["date_vente"];
$datealso=date('2012-m-d');
if($datetoday!=$datealso){
//$neudate=$data["date_vente"];
$neudatea='2012,'.$rest3.','.$rest.'';
echo date($neudatea).'<br>';
//$neudate=date($neudatea);
mysql_query('UPDATE sale SET date_vente="'.$neudatea.'"');
$i++;
}
}
?>
merci pour votre aide en tout cas
remib74
Messages postés
15
Date d'inscription
dimanche 25 novembre 2012
Statut
Membre
Dernière intervention
20 octobre 2015
Modifié par remib74 le 28/11/2012 à 12:17
Modifié par remib74 le 28/11/2012 à 12:17
merci beaucoup pour ta réponse le père, je vais essayer de simplifier le code en retirant le superflue et l'inutile.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
remib74
Messages postés
15
Date d'inscription
dimanche 25 novembre 2012
Statut
Membre
Dernière intervention
20 octobre 2015
28 nov. 2012 à 18:11
28 nov. 2012 à 18:11
Merci le père pour tes infos, j'ai donc utiliser l'id comme repère et le script que je poste fonctionne bien qu'il provoque de nombreuses erreurs de type :
Notice: Use of undefined constant id - assumed 'id' in C:\wamp\www\new3.php on line 28, ce qui est surement du a ma syntaxe laborieuse en php (en fait je suis intégrateur).
merci encore et voila donc le script final.
A bientot
Notice: Use of undefined constant id - assumed 'id' in C:\wamp\www\new3.php on line 28, ce qui est surement du a ma syntaxe laborieuse en php (en fait je suis intégrateur).
merci encore et voila donc le script final.
A bientot
<?php $bdd = mysql_connect('localhost', 'root', ''); mysql_select_db('solid_pro',$bdd); mysql_query("SET NAMES 'utf8'"); $sql = 'SELECT * FROM sale '; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); $i=0; while($data= mysql_fetch_array($req) ){ $rest1 = substr($data["date_vente"], 0,2); // retourne 20 $rest2 = substr($data["date_vente"], 8,2); // retourne 12 $rest3 = substr($data["date_vente"], 5,2); // retourne -08- $rest = substr($data["date_vente"], 2,2); // retourne 31 $datetoday=$data["date_vente"]; $datealso=date('2012-m-d'); if($datetoday!=$datealso){ //$neudate=$data["date_vente"]; $neudatea='2012-'.$rest3.'-'.$rest; echo date($neudatea).'<br>'; //$neudate=date($neudatea); mysql_query('UPDATE sale SET date_vente="'.$neudatea.'" WHERE id="'.$data[id].'"'); } } ?>
remib74
Messages postés
15
Date d'inscription
dimanche 25 novembre 2012
Statut
Membre
Dernière intervention
20 octobre 2015
29 nov. 2012 à 00:37
29 nov. 2012 à 00:37
pas de problème d'ailleurs j'aurai du trouver ça tout seul, le fait est que ton aide m'a été véritablement précieuse alors merci encore et bonne soirée
Modifié par le père. le 28/11/2012 à 11:33
$neudatea='2012-'.$rest3.'-'.$rest.'';
Et surtout, il te manque un WHERE dans ton update, sinon tu vas mettre la même date dans toute ta table !