|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
bonjour, je me casse la tete avec un soucis.
en image : ![]() le code : Code :
les temps sont correct : $heure1 = heure de connexion du membres sous forme 00.00.00 $heure_fin = heure du moment + 20 minutes donc dans la bdd toutes les connexion dépassant cette heure de fin doivent être désactivé sauf celle en cours. merci car la je tourne en rond depuis ce matin voir même tôt/tard dans la nuit ... |
||
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Citation:
Code :
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|||
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Plusieurs questions : - Pourquoi avoir séparé date et heure ? Un timestamp aurait été tout aussi approprié. - Quand tu dis "toutes les connexion dépassant cette heure de fin doivent être désactivé sauf celle en cours", comment sais-tu que celle en cours ne dépasse pas le temps limite ? La session peut avoir été initialisée longtemps auparavant et être encore active ou inactive. Comment le savoir ? Tu devrais avoir un champ du type : activity avec un timestamp. Sinon pour ta requête : tu peux le faire directement via les fonctions de MySql, pas besoin de cuisine en local : Code :
$sql = "UPDATE panel SET active='off_line' WHERE nick_handle='$nick_handle' AND client='$client' AND TIME_TO_SEC(`heure`) < (TIME_TO_SEC(NOW()) - 20*60)"; Code :
$sql = "UPDATE panel SET active='off_line' WHERE nick_handle='$nick_handle' AND client='$client' AND TIMESTAMPDIFF(MINUTE, DATE_ADD(`date`, INTERVAL `heure` HOUR_SECOND), NOW()) > 20";
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#4 | |
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
merci
alors j'ai fais comme ca : Code :
$sql = "UPDATE panel SET active='off_line' WHERE nick_handle='$nick_handle' AND client='$client' AND TIMESTAMPDIFF(MINUTE, DATE_ADD(`date_connect`, INTERVAL `heure_connect` HOUR_SECOND), NOW()) > 20"; reconnecte je ne passe pas a on-line je reste a off-line même connecté et dans les - de 20mn d’écart, mais je croit que c'est du au passage de 23h00 a 00h00 car les délais sont bizarre car la il m'ajoute 1h30 sur le total: Citation:
je vais attendre demain pour voir si ca vient vraiment du passage a 00h00 |
|
|
|
00
|
|
|
#5 | ||
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
alors j'ai réussi a régler ce soucis maintenant j'ai un soucis au niveau d'un comparaison de date.
Code :
merci |
||
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() |
Bonjour,
Pour les dates il faut arrêter la cuisine : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#7 | ||||
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
merci,
j'ai fais comme ca mais la je n'est plus rien .. Code :
j'ai modifier la premiere ligne qui me mettais en default : Code :
![]() les deux reste en etat actif alors que l'une des date n'est plus valable. |
||||
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() ![]() |
T'es sûr que $env['date_fin'] renvoie quelque chose ?
Parce que ceci fonctionne très bien : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
et bien oui, regarde sur l'image la date de fin est un echo de $env['date_fin']
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() ![]() |
Vu que c'est un if/else, une requête UPDATE est envoyée quoi qu'il arrive donc le problème se situe au niveau de ton SQL ou d'un rafraichissement manquant
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
dans sql les deux dates sont en vachar .
j'ai un enregistrement de date d'achat et un de date de fin ex : $date1=$env['date']; = ma date d'achat $date_fin2=$env['date_fin']; = la date de fin donc en faite je cherche juste a changer le statut des que l'une des date de fin est inferieur a la date du jour |
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() ![]() |
Cherches pas plus loin, le problème est là. Quand tu mets une date en varchar (simple texte), tu perds le sens des différents composants (jour, mois, année). Deuxième erreur : tu as conservé le formatage jj/mm/aaaa, tu aurais dû formater ainsi aaaammjj et dans ce cas tu aurais pu conserver (à la rigueur) ton format texte.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#13 | ||
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
en faite je vient de pigé un truc, la variable $date_fin2 est dans un tableau dynamique don elle n'affiche que la date de fin correspondant a la varibale $ordre.
si je fais un echo $date_fin2 j'ai les deux dates se trouvant dans la base sql resultat de l'echo : 14/11/201207/11/2011 ce qui fous le bordel.. pour mieux te montrer voici le code complet : Code :
|
||
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() ![]() |
J'ai regardé ton script :
ligne 5 : $total5 jamais utilisé ligne 16 : for() inutile : pas d'accolade ouvrante Formatage du tableau incorrect : aucun thead | tbodyL'attribut width ne prend pas d'unité Après pour ton problème de date, il faut regarder de plus près ta syntaxe SQL car je ne vois pas de $ordre
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#15 |
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
nom excuse y'a pas de $ordre il s'agit juste d'une auto incrementation dans la bdd
mais comment faire en sorte que $date_fin n'affiche pas toutes les dates a l'affiler et que je puisse juste comparer une date de fin avec une date de jour afin de modifier la valeur. et pour le tableau ce sont des membres (moderateur) d'ici qui m'avais corrigé a l'époque je n'est rien changé depuis.. |
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() ![]() |
Si tu as des dates à la queue le leu, cela veut dire que ton champ date_fin contient ces dates. Un SELECT * FROM factures; ne concatène pas tout seul les champs de la table (heureusement). Donc, il faut aller vérifier ta table.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#17 | ||
|
Expert Confirmé
![]() ![]() |
J'ai repris ton code, je l'ai corrigé et présenté différemment :
Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#18 |
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
merci c'est très sympa de prendre du temps pour m'aider, je vient de tester mais il doit y avoir une erreur de syntax car la page reste blanche et ne s'ouvre pas, j'ai cherché mais je voit pas trop ou ca bloque.
merci alors j'ai modifier cette ligne $today = date("d/m/Y"); maintenant la page s'afficher bien mais la date qui etais inferieur a la date du jour ne s'affiche plus, je n'est plus que celle qui est encore valable par contre en bdd le statut de l'autre n'a pas changé en faite le tableau ne m'affiche qu'une seule date et la derniere, j'ai fais un test en inversant les numero ordre et j'ai l'affichage de l'autre mais meme si la date n'est pas bonne cela rest toujours en "actif" |
|
|
00
|
|
|
#19 |
|
Expert Confirmé
![]() ![]() |
Peut en mettant ceci en ligne 19 :
Code :
$exec = mysql_query($sql) or die ('Erreur : '.mysql_error()); Code :
$res = mysql_query($sql) or die ('Erreur : '.mysql_error());
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#20 | |
|
Futur Membre du Club
![]() olivier lebaronWebmaster Inscription : octobre 2007 Messages : 125 ![]() |
effectivement j'ai bien l'affichage de mes deux lignes.
par contre sur celle ci j'ai Citation:
edit : tu veut dire que dans la bdd je doit passer de vachar a date sur les deux données $date et $date_fin ? je sais que c'est pas clin mais ma table est comme ca :
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com