PDA

View Full Version : visualizza messaggio


dav1
26-04-2007, 10:41
mi servirebbe un aiuto.. io ho uno script che mi va a leggere nel database.. i dati e poi me li visualizza.... solo che per fare questo devo usare il refresh che mi va ad aggiornare tutta la pagina, c'è un modo per far si che la pagina non venga aggiornata tutta, so che c'è da utilizzare ajax solo che non so come utilizzarlo ecco il codice :

<?php
session_start();
//Variabile che contiene il codice della stanza in cui ci si trova
$stanza= $_SESSION['stanza'];
$nick= $_SESSION['nick'];
require 'config.php';
//Stabilisco la connessione al database se non la stabilisco restituisce il mess seguente
$conn=mysql_connect($host,$nome,$password) or die("Errore nella connessione a MySql: " . mysql_error());
//Vado a stabilire la connessione con il database
mysql_select_db($database,$conn) or die("Errore nella selezione del db: " . mysql_error());
//echo $nick;
$array_nominativi=array();
$array_messaggi=array();
$array_colore=array();
$array_font=array();
$array_dimensioni=array();
$contatore=1;
$ora=time();
//Vado ad aggiornare il timeout dell'utente
$Query=' UPDATE utenti_online SET time_out ="'.$ora.'"'.'WHERE nick="'.$nick.'"';
$ris = mysql_query($Query,$conn)or die("Errore nella query: " . mysql_error());

//Metto in una variabile l'ora settata a ntempo prima dell'ora attuale
$ora=$ora-$durata_messaggio;
//Vado a fare la query per prendere tutti i mess da una certa ora in poi e di una certa stanza in modo da non stamparli tutti
$Query='SELECT * FROM messaggi WHERE (orario>'.$ora.')and(codice_stanza="'.$stanza.'")';
$ris = mysql_query($Query,$conn)or die("Errore nella query: " . mysql_error());
//Vado a mettere i mess che ho nel file in un array
while($riga = mysql_fetch_array($ris)) {
$array_nominativi[$contatore]=$riga[0];
$array_messaggi[$contatore]=$riga[1];
$array_colore[$contatore]=$riga[3];
$array_font[$contatore]=$riga[4];
$array_dimensioni[$contatore]=$riga[5];
$contatore++;
}
//Vado a sampare i messaggi all'inverso
$contatore=$contatore-1;
print' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<meta http-equiv="refresh" content="3;URL=visualizza_messaggio.php">
<title>
</title>
</head>
<body>';

while($contatore!=0) {
//Vado a caricare il colore del font dal database
$colore=$array_colore[$contatore];
//Vado a caricare lo stile del font
$font=$array_font[$contatore];
//Vado a caricare la dimensione
$dimensione=$array_dimensioni[$contatore];
$nominativi=$array_nominativi[$contatore];
//A seconda della dimenzione del carattere stampo tot caratteri in una riga
switch ($dimensione) {
case 1:
$app=150;
$cost=8;
break;
case 2:
$app=110;
$cost=8;
break;
case 3:
$app=90;
$cost=4;
break;
case 4:
$app=75;
$cost=2;
break;
case 5:
$app=55;
$cost=1;
break;
case 6:
$app=30;
$cost=-1;
break;
case 7:
$app=15;
$cost=-3;
break;
}

//Vado a fare la queri per vedere se uno è mod o no
$Query='SELECT * FROM dati_utente WHERE(nick="'.$nominativi.'")';
$ris = mysql_query($Query,$conn)or die("Errore nella query: " . mysql_error());
$riga = mysql_fetch_array($ris);
if ($riga[6]==1) {
print '<font color="red"><u>'.$nominativi.':</u></font>&nbsp;';
}else {
print '<u>'.$nominativi.':</u>&nbsp;';
}






print'<font color="'.$colore.'"face="'.$font.'"size="'.$dimensione.'">';
$i=0;
$cont=0;
//$spazio=0;
//Vado a prendere la lunghezza del nominativo
$lunghezza_nom=strlen($nominativi);
//Vado a controllare la lunghezza del messaggio
$lunghezza_mess=strlen($array_messaggi[$contatore]);
$frase=$array_messaggi[$contatore];
do {

if (($cont>=$app) && ($cont<=$app+9)) {
if (($frase[$i]!=' ')&&($cont!=$app+9)) {
echo $frase[$i];
}else {
echo $frase[$i];
echo'<br>';
//Vado a mettere un tot di spazzi vuoti
for ($spazio=0;$spazio<=$lunghezza_nom+$cost;$spazio++ ) {
echo'&nbsp;';
}

$cont=-1;
}

}else {
echo $frase[$i];
}

$cont++;
$i++;
} while ($i!=$lunghezza_mess);

echo'</font><br>';
$contatore--;
}
print'</body>
</html>';
?>