|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
Bonjour à tous.
J'ai un problème de if, en fait je gère des actions sur un dossier et si la date de l'action que j'ajoute est la plus récente je dois mettre à jour le statut du dossier, sinon le statut du dossier n'est pas mis à jour ![]() Je commence donc par insérer dans ma bdd l'action (quoiqu'il arrive) Code :
ceci fonctionne bien mais j'ai préféré mettre la requête au cas ou. Puis je cherche la date la plus récente: Code :
J'ai donc fait une condition if , si la date de l'action que je veux insérer est plus récente alors je mets à jour le statut: Code :
Merci pour votre aide
|
||||||
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Étudiant Inscription : octobre 2010 Messages : 92 ![]() |
Y a pas un mysql_fetch_array à faire pour $result3 avant le if ?
$_REQUEST['DATE_ACT'] est bien au même format que ton $result3 ? |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
Code :
$result3 = mysql_query($sql2) or die (mysql_error());
__________________
Développeur informatique contrarié... |
|
|
00
|
|
|
#4 | ||
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
Merci pour vos interventions.
J'ai modifié mon code selon vos remarques cependant dorénavant il se produit l'inverse, je ne rentre jamais dan la boucle ![]() Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
et comme ça :
Code :
if(datefrancais2mysql($_REQUEST["DATE_ACT"]) > $row['DATE_ACT']){...}
__________________
Développeur informatique contrarié... |
|
|
10
|
|
|
#6 | |
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
Je n'ai pas vraiment compris ton code, cette partie en fait
Citation:
J'ai tout de même essayer d'appliquer le code mais il me dis que DATE_ACT n'est pas défini, du coup on rentre toujours dans la boucle Merci pour ton aide cependant |
|
|
|
00
|
|
|
#7 | ||
|
Membre éclairé
![]() Olivier Étudiant Inscription : novembre 2010 Messages : 303 ![]() |
Bonjour,
Remplace par $row[0] ça devrait marcher. En fait $row est un tableau avec une case par colonne de ton select, et pour que ce soit plus simple tu peux l'utiliser en mode associatif avec le nom des champs récupéré. Code php :
|
||
|
|
10
|
|
|
#8 |
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
Je comprends mieux la réponse de vorace alors
Merci pour ton intervention mais ça ne marche toujours pas, il n'a pas aimé le 0 |
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Olivier Étudiant Inscription : novembre 2010 Messages : 303 ![]() |
Il n'a pas aimé ? Etrange ...
Il t'as donné une erreur ? Si c'est le cas peut tu nous la poster merci. Autre chose, fait un var_dump($row); juste avant ton if et donne nous le résultat. |
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
Résultat du vardump :
array(1) { ["max(DATE_ACT)"]=> string(19) "2012-01-26 12:01:32" } Message d'avertissement : Notice: Undefined offset: 0 in ... Merci encore |
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() Olivier Étudiant Inscription : novembre 2010 Messages : 303 ![]() |
Alors pour le fait que le 0 ne marche pas je ne comprend pas
![]() Peut-être qu'il y a une option mysql à activer ? Par contre ça doit marcher si tu met $row["max(DATE_ACT)"] |
|
|
10
|
|
|
#12 |
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
Plus d'erreurs, mais à nouveau on ne rentre plus jamais dans la boucle
|
|
|
00
|
|
|
#13 | ||
|
Membre éclairé
![]() Olivier Étudiant Inscription : novembre 2010 Messages : 303 ![]() |
Si tu ne rentre plus dans la boucle c'est que t'as condition n'est pas vérifié car normalement tu récupère bien ce qui ce trouve dans ta base de données.
Essaye ça : Code php :
Code php :
if(date("Y-m-d H:i:s", strtotime($_REQUEST['DATE_ACT'])) > date("Y-m-d H:i:s", strtotime($row['max(DATE_ACT)']))); Edit : En fait pas besoin de faire aussi compliqué, vu que c'est juste pour un test : Code php :
if(strtotime($_REQUEST['DATE_ACT']) > strtotime($row['max(DATE_ACT)'])){ ... } |
||
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
ça fonctionne!!! Enfin apparemment ,
J'ai viré le "datefrancais2mysql" : Code :
if($_REQUEST["DATE_ACT"] > $row["max(DATE_ACT)"]) |
|
|
00
|
|
|
#15 |
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
Finalement j'ai parlé un peu vite, ça ne marche mais que dans certains cas.
Va falloir que je reprenne ça ![]() J'ai deux dates différentes: date 1 : 26/01/2012 16:36:45 date 2 : 2012-01-26 16:36:45 |
|
|
00
|
|
|
#16 |
|
Membre éclairé
![]() Olivier Étudiant Inscription : novembre 2010 Messages : 303 ![]() |
Est-tu capable de tester un cas qui devrait fonctionner mais qui ne fonctionne pas à coup sûr ?
Si c'est le cas essaye de remplacer ton if par celui-ci : Code php :
if(strtotime($_REQUEST['DATE_ACT']) > strtotime($row['max(DATE_ACT)'])) Edit : Effectivement si tu utilise deux formatage de date différent il vaut mieux passer par strtotime pour éviter ce genre d'erreur. Edit 2 : Attention ! Je viens de remarquer que les deux dates que tu a posté son identique, hors pour ton if tu fait un test sur du strictement supérieur. Il est donc normal que tu ne rentre pas dans le else pour ce cas la. |
|
|
00
|
|
|
#17 | |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
Citation:
datefrancais2mysql que tu as viré... date francais : 26/01/2012 16:36:45 => date mysql : 2012-01-26 16:36:45
__________________
Développeur informatique contrarié... |
|
|
|
00
|
|
|
#18 |
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
Merci encore pour ton aide.
J'ai testé avec le if ça ne marche pas (on rentre toujours dans la boucle) Je reprend le code de quelqu'un d'autre en fait ce qui ne me facilite pas la tâche |
|
|
00
|
|
|
#19 | |||||
|
Membre éclairé
![]() Olivier Étudiant Inscription : novembre 2010 Messages : 303 ![]() |
Étrange, pourtant pour moi ça fonctionne parfaitement.
J'ai testé le code suivant : Code php :
Et voici le résultat obtenue : Code :
Citation:
Je t'encourage à refaire un test en affichant les deux dates juste avant le if mais également dedans histoire d'être sûr... |
|||||
|
|
00
|
|
|
#20 |
|
Invité régulier
![]() etudiant Inscription : décembre 2011 Messages : 54 ![]() |
date 1 : 25/01/2012 17:24:00
date 2 : 2012-01-26 17:23:44 voici un exemple, pourtant alors que la date1 est inférieure il rentre dans la boucle En fait on ne doit pas utiliser strtotime si? EDIT=> il faut que je les mette au même format non? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com