Page 1 sur 1

liste des connectés

Posté : 30 mai 2010, 03:12
par graffx
Bonjour, j' ai un leger souci pour afficher le nom de mes connectés.

Dans mon header, un update pour les logués.
$temps = 5;
$time = time();
$time2 -= $temps * 60;



$update2="UPDATE users SET derniere=".$time." WHERE pseudo='".$_SESSION['name']."'";
        
$upadte = mysql_query($update2);
Ensuite, j' aimerai afficher les membres presents depuis moins de 5mn:
			<?php
			$connectes2 = mysql_query("SELECT pseudo FROM users WHERE derniere < '$time2' ORDER BY pseudo ASC")or die(mysql_error());
			while ($connectes = mysql_fetch_array($connectes2))
			{
			echo $connectes['pseudo'];
			echo '<br />';
			}
			?>
derniere est la colonne de la bdd qui recupere le timestamp a chaque refresh.

Si qulequ' un pouvait me dire pouquoi je n' ai meme pas un message d' erreur, ca serait cool!

Re: liste des connectés

Posté : 30 mai 2010, 14:22
par visualight
Salut,

Personnellement j'utiliserai un timestamp avec mktime pour calculer le temps.
Cela devrait t'aider à comprendre et résoudre ton problème.

calculer une différence entre deux dates
// le 5 mai 2010 à 12H14mn 30secondes
$date1 = mktime(12,14,30,5,5,2010);
// le 5 mai 2010 à 18H21mn 0seconde
$date2 = mktime(18,5,0,5,21,2010);
 
$diff_date = $date2-$date1;
$diff['heures'] = (int)($diff_date/(60*60));
$diff['jours'] = (int)($diff_date/(60*60*24));
print_r ($diff);
 
/*
 * retourne $diff = 
 * Array
 * (
 *   [heures] => 390
 *   [jours] => 16
 * )
 */
Ne reste plus qu'à l'utiliser dans ton contexte ;)

Re: liste des connectés

Posté : 30 mai 2010, 17:32
par graffx
Effectivement, ta methode est geniale, ca marche pas trop mal, mais c' est parce que je suis en train de l' adapter! Merci encore!!!

Question bete, un nouveau souci survient.

J' utilise donc un timestamp et j' aimerai afficher la derniere connexion du membre, pas de souci, ca fonctionne.

Le hic, c' est que j' aimerai qu' au lieu d' afficher la date du jour si c' est le jour d' aujou'.....attend, je vais expliquer plus simple.

Aujourd hui le membre est connecté, ca affiche la date du jour et l' heure, j' aimerai que ca affiche "aujourd hui à 00h00".

C' est le "aujourd hui" a la place de la date du jour :/

Du coup, question similaire, surement la meme methode que pour ma premiere question, si le membre est connecté depuis moins de 5 minutes, comment faire le calcul?

Merci d' avance car j' ai deja appris une methode grace a toi :)

Re: liste des connectés

Posté : 30 mai 2010, 19:17
par stealth35
Salut,

Personnellement j'utiliserai un timestamp avec mktime pour calculer le temps.
Cela devrait t'aider à comprendre et résoudre ton problème.

calculer une différence entre deux dates
// le 5 mai 2010 à 12H14mn 30secondes
$date1 = mktime(12,14,30,5,5,2010);
// le 5 mai 2010 à 18H21mn 0seconde
$date2 = mktime(18,5,0,5,21,2010);
 
$diff_date = $date2-$date1;
$diff['heures'] = (int)($diff_date/(60*60));
$diff['jours'] = (int)($diff_date/(60*60*24));
print_r ($diff);
 
/*
 * retourne $diff = 
 * Array
 * (
 *   [heures] => 390
 *   [jours] => 16
 * )
 */
Ne reste plus qu'à l'utiliser dans ton contexte ;)

ou date_diff :wink: (mais php 5.3)

Re: liste des connectés

Posté : 30 mai 2010, 19:41
par graffx
Non je n' y arrive pas sachant que j' enregistre le temsp en secondes sur mon timestamp :/

Re: liste des connectés

Posté : 30 mai 2010, 19:45
par stealth35
Non je n' y arrive pas sachant que j' enregistre le temsp en secondes sur mon timestamp :/
si c'est en timestamp ta pas besion de faire la fonction mktime :wink: