- Home
- Categorie
- Coding e Sistemistica
- Coding
- Come far apparire online solo una volta un utente piuttosto che 4 volte
- 
							
							
							
							
							
Come far apparire online solo una volta un utente piuttosto che 4 volteCiao a tutti oggi sono alle prese con questa pagina online.php: </SPAN>[php] 
 <html>
 <head>
 <title>Persone online</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <script language="javascript">
 function apri(nick_ut)
 {
 window.open("profilo.php?nick=" + nick_ut,nick_ut,"width=500, height=280, left=200");
 }
 </script>
 </head><body bgcolor="#E7E9FA"> 
 <?
 include("config.php");$ar_online=file($file_online); 
 $dim=count($ar_online);for ($i=0;$i<$dim;$i++) 
 {
 $ut_online=chop($ar_online*);
 $utente=explode("|",$ut_online);
 $nick_ut=$utente[0];
 $data=$utente[1];
 $orario=$utente[2];$parti_data=explode("/",$data); 
 $giorno=$parti_data[0];
 $mese=$parti_data[1];
 $anno=$parti_data[2];$parti_orario=explode(":",$orario); 
 $ora=$parti_orario[0];
 $minuti=$parti_orario[1];
 $secondi=$parti_orario[2];$ts=mktime($ora,$minuti,$secondi,$mese,$giorno,$anno); 
 $diff=time()-$ts;
 $min_trascorsi=$diff/60;
 if ($min_trascorsi<$min_online)
 {
 $array_on[]=$nick_ut;
 }
 }
 $ar_unico=array_unique($array_on);
 $dim_unico=count($ar_unico);echo "<font face="Verdana" size="1">Online: "; 
 for($i=0;$i<count( $array_on);$i++)
 {
 echo $array_on*. ", ";
 }
 ?></body> 
 </html>[/php] praticamente a video mi compaiono i nomi degli utenti che negli ultimi 60 secondi hanno scritto un messaggio, quindi se un utente mi scirve 4 messaggi a video mi compare 4 volte il suo nome come faccio perchè piuttosto che 4 volte venga messo solo una volta il suon nome? spero di essere stato più chiaro possibile, e ringrazio chi mi aiuterà! mi è stato consigliato di usare un array multidimensionale ma non so come fare, spero mi aiutiate!  
 
- 
							
							
							
							
							
Devi usare l'array $ar_unico che contiene già i valori come servono a te 
 
- 
							
							
							
							
							
@Gorka said: Devi usare l'array $ar_unico che contiene già i valori come servono a te ok ma lo uso già non hai visto la pagina e il codice che ho già postato?:? 
 
- 
							
							
							
							
							
Nell'ultimo ciclo 
 [php]echo "<font face="Verdana" size="1">Online: ";
 for($i=0;$i<count( $array_on);$i++)
 {
 echo $array_on*. ", ";
 } [/php]usi l'array $array_on
 Secondo me devi sostituirlo con $ar_unico, quindi :[php]echo "<font face="Verdana" size="1">Online: "; 
 for($i=0;$i<$dim_unico;$i++)
 {
 echo $ar_unico*. ", ";
 } [/php]
 
- 
							
							
							
							
							
@Gorka said: Nell'ultimo ciclo 
 [php]echo "<font face="Verdana" size="1">Online: ";
 for($i=0;$i<count( $array_on);$i++)
 {
 echo $array_on*. ", ";
 } [/php]usi l'array $array_on
 Secondo me devi sostituirlo con $ar_unico, quindi :[php]echo "<font face="Verdana" size="1">Online: "; 
 for($i=0;$i<$dim_unico;$i++)
 {
 echo $ar_unico*. ", ";
 } [/php]grazie Gorka senza il tuo aiuto non ce l'avrei mai fatta, grazie mille!    
 
- 
							
							
							
							
							
accidenti pensavo funzionasse e invece non è così... adesso a video mi appare online solo l'ultimo che nei 60 secondi ha inviato un messaggio  
 
- 
							
							
							
							
							
Utilizzia DISTICT nella query SELECT 
 
- 
							
							
							
							
							
la mia chat è solo su fogli di testo non usa database, nessun altro che abbia qualche idea? :bho: 
 
- 
							
							
							
							
							
proprio nessuno che sappia aiutarmi a risolvere questo enigma?  
 
- 
							
							
							
							
							
boh è da tanto che cerco di risovere questa cosa ma ad ora ancora non ci sono riuscito qualcuno mi sa aiutare? per favore magari è una cavolata ma non ci riesco, aiutatemi 