Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Stampare righe temporizzate

    Salve a tutti, ho una semplice pagina php che legge i dati di una calssifica salvata su un database online gestito con phpMyAdmin. Dato che la tabella classifica viene aggiornata ogni minuto vorrei creare un controllo che mi stampi a video solo le ultime righe rilevate. Purtroppo l'unica soluzione più fattibile è effettuare un refresh della pagina ma che purtroppo mi legge tutta la tabella e la stampa a video nella sua completezza. Ho provato a girare sul web per trovare qualche javascript per leggere una riga alla volta ma nella maggior parte dei casi ho trovato la necessita di installare driver per la connessione al database e per l'appunto vorrei evitare questa soluzione in quanto sarebbe poco funzionale per computer che non hanno i driver installati. Quindi chiedo se sia possibile realizzare un controllo php tale. Posto il codice della mia pagina per chi avesse bisogno di chiarirsi le idee sul lavoro che sto svolgendo.

    codice:
    <html>
    	<body>
    		<form
    		<table width="100%">
    			<th> Posizione N° </th>
    			<th> Concorrente </th>
    			<th> OraArrivo </th>
    			<th> TempoUfficiale </th>
    			<th> TempoPersonale </th>
    			<th> PACE </th>
    <?php
    
    	$db_host = "mysql17.aziendeitalia.com:3306";
    	$db_user = "simonedatabase";
    	$db_password = "dbtest";
    	$db_name = "testChrono";
    	
    	$conn = mysql_connect($db_host,$db_user,$db_password) or die(mysql_error());
    	mysql_select_db("$db_name",$conn);
    	
    	$nomeGara = $_GET['gara'];
    	$risultati = mysql_query("SELECT numero,intToMillis(tempoArrivo) as tempo,HHUff,MMUff,SSUff,CCUff,HHPers,MMPers,SSPers,CCPers,pace FROM $nomeGara order by tempoArrivo");
    	$numPartecipanti = mysql_num_rows($risultati);
    	
    	$i=0;
    	while ($i < $numPartecipanti)
    	{
    		$numConcorrente = mysql_result($risultati,$i,"Numero");
    		$tempoArrivo = substr(mysql_result($risultati,$i,"tempo"),0,11);
    		$tempoUffHH = sprintf("%02d",mysql_result($risultati,$i,"HHUff"));
    		$tempoUffMM = sprintf("%02d",mysql_result($risultati,$i,"MMUff"));
    		$tempoUffSS = sprintf("%02d",mysql_result($risultati,$i,"SSUff"));
    		$tempoUffCC = sprintf("%02d",mysql_result($risultati,$i,"CCUff"));
    		$tempoPersHH = sprintf("%02d",mysql_result($risultati,$i,"HHPers"));
    		$tempoPersMM = sprintf("%02d",mysql_result($risultati,$i,"MMPers"));
    		$tempoPersSS = sprintf("%02d",mysql_result($risultati,$i,"SSPers"));
    		$tempoPersCC = sprintf("%02d",mysql_result($risultati,$i,"CCPers"));
    		$pace = number_format(mysql_result($risultati,$i,"Pace"),2);
    		$i++;
    		echo "<tr>
    				<td align=\"center\">$i</td>
    				<td align=\"center\"> $numConcorrente </td>
    				<td align=\"center\"> $tempoArrivo </td>
    				<td align=\"center\"> $tempoUffHH:$tempoUffMM:$tempoUffSS.$tempoUffCC </td>
    				<td align=\"center\"> $tempoPersHH:$tempoPersMM:$tempoPersSS.$tempoPersCC </td>
    				<td align=\"center\"> $pace </td>
    			</tr>";
    			
    	}
    	echo "</table></body></html>";
    	mysql_close;
    	//sleep(10);
    	//echo "<meta http-equiv=\"refresh\" content=\"1;url=provaClassifica.php\">";
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Utilizza l'ajax di jquery che è facilissimo da usare, gestisci l'output restituito dalla pagina delle classifiche e stampalo, riesegui la chiamata ogni tot di tempo utilizzando una funzione e un settimeout in js ad esempio

  3. #3
    Originariamente inviato da RoTeam
    Utilizza l'ajax di jquery che è facilissimo da usare, gestisci l'output restituito dalla pagina delle classifiche e stampalo, riesegui la chiamata ogni tot di tempo utilizzando una funzione e un settimeout in js ad esempio
    Ho provato ad usare il sistema che mi hai consigliato ma sto avendo un po di problemi...in pratica vorrei far comparire una riga ogni X secondi ma o si sovrappongono le righe oppure non viene effettuata la temporizzazione...ti mostro il primo codice al quale non riesco a far comparire una riga alla volta prendendo i dati dal file data.php:

    Esempio di file data:
    codice:
    <?php
    	echo "<tr><td> prova col1 </td>
    				<td> prova col2 </td>
    				<td> prova col3 </td>
    			</tr>";
    ?>
    Esempio di file classifica:

    codice:
    <html>
    	<head>
    		<style type="text/css">
    	#tabella table{
    		background-color:#ccc;
    		margin:10px 0;
    		padding:3px;
    	}
    	</style>
    		<script type="text/javascript" src="jquery-1.3.2.js"> </script>
    		<script type="text/javascript">
    
    			function nuovaRiga(){
    				//$("<tr><td>prova</td><td>prova2</td><td>prova3</td></tr>").appendTo("#tabella");
    				//$("<div>
    
    Esempio di elementi nidificati</p></div>").appendTo("#tabella"); 
    				//$("<tr><td>aaaaaaaaaaaaaaaaaaaaaaa</td></tr>").appendTo("#tabella");
    				$.post('data.php', { name: form.name.value },function (output){
    								var str = $('#a').html(output).text();
    								$('str').appendTo('#tabella');
    								//$($('#a').html(output).fadeIn(1000)).appendTo('#tabella');
    								//$('#a').html(output).fadeIn(1000).appendTo('#tabella');
    							});
    			}
    		</script>
    	</head>
    	
    	<body>
    		<form name="form">
    			<input type="button" value="Get" onClick="get();">
    			
    		
    			<input type="button" value="NuovaRiga" onClick="nuovaRiga()" >
    		</form>
    		<div id="a"> </div>
    		<table id="tabella"></table>
    	</body>
    </html>
    i vari commenti sono le prove che sto facendo perke in pratica l'output riesco a farlo comparire a video ma se volessi stampare piu righe una sotto l altra nn mi risulta possibile...

  4. #4
    Sono appena riuscito a stampare a video una riga alla volta con un tempo stambilito di 3 secondi (3000 millisecondi) posto il codice per chiunque avesse la necessita di svolgere un lavoro simile al mio...infine domando se qualcuno sa spiegarmi come mai collegando l'effetto grafico FadeIn non mi viene restituito l'output a comparsa opacizzata...

    codice:
    <html>
    	<head>
    		<style type="text/css">
    	#tabella table,tr{
    		
    		border: 1px solid black;
    	}
    	.provaTd{
    		background-color:#ccc;
    		}
    	</style>
    		<script type="text/javascript" src="jquery-1.3.2.js"> </script>
    		<script type="text/javascript">
    			var i = 0;
    			var tempo="";
    			function myFunction(){
    				tempo = setInterval(function(){nuovaRiga()},3000);
    			}
    			function nuovaRiga(){
    				$.post('data.php', { name: form.name.value },function (output){
    								$("<tr class='prova'></tr>").appendTo('#tabella');
    								$('.prova').html(output).fadeIn(10000);
    								$('.provaTd').fadeIn(10000);
    							});
    			}
    		</script>
    	</head>
    	
    	<body OnLoad="myFunction()"> 
    		<form name="form">
    			<input type="button" value="Stop" onClick="window.clearInterval(tempo)" />
    		
    			<input type="button" value="NuovaRiga" onClick="nuovaRiga()" >
    		</form>
    		<div id="a"> </div>
    		<table id="tabella"></table>
    	<?php
    		if( !ini_get('safe_mode') )
    		{
    			set_time_limit(10000000);
    		}
    		sleep(20);
    		echo "<meta http-equiv=\"refresh\" content=\"1;url=provaClassifica2.php\">";
    	?>
    	</body>
    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.