Array con messaggi

marf

Utente Attivo
4 Nov 2009
30
0
0
Salve a tutti, nel mio gioco sto implementando un sistema di messaggi:

ogni utente potrà inviare un messaggio, che verrà memorizzato in un database, i primi 10 messaggi verranno stmpati in una tabella...

Il problema è il seguente, la memorizzazzione avviene perfettamente, utilizzo la seguente funzione per prelevare i messaggi e creare un array:

PHP:
function seleziona_messaggi() {
	
	global $db_id;
	
	$sql = "SELECT * FROM messaggi_scor ORDER BY data DESC";
	$ris = mysql_query($sql, $db_id);
	
	$messaggio = array();
	
	
 	for ($i=0; $row = mysql_fetch_row($ris); $i++) 
	
	$messaggio[$i]=$row;
 
 	return $messaggio;
	
	
	
}


In questo modo $messaggio sarà un array dove oni indice corirsponde ad un messaggio, ditemi se sbaglio...

Poi per stampare il tutto adotto il seguente codice:

PHP:
<?php
		
		
		
		seleziona_messaggi();
		
		echo"<table align='center'>
		<tr>
		<td>Numero</td>
		<td>Giocatore</td>
		<td>Messaggio</td>
		<td>Data</td>
		</tr>";
		
		
		for ($i=0; (($i=10)&&($i<count($messaggio))); $i++)
		
		echo"<tr>
		<td>".$i."</td>
		<td>".$messaggio[$i][1]."</td>
		<td>".$messaggio[$i][2]."</td>
		<td>".$messaggio[$i][3]."</td>
		</tr>
		</table>";
		
		?>

Il problema è che non mi stampa nulla e non so come mai, riuscite a dirmi dove ho sbagliato, vorrei che nella tabella venissero stampati i 10 messaggi più recenti.

La tabella messaggi_scor, dove vengono memorizzati i messaggi è strutturata nel seguente modo:

Sono presenti 4 campi:

id che si incrementa, è l'id del messaggio;
giocatore, ovvero il nome del giocatore;
messaggio, ovvero il contenuto testuale del messaggio;
data, ovvero la data di quando è stato spedito il messaggio in formato DATETIME;

Non riesco a capire cosa è sbagliato, grazie in anticipo,

Marco
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Modifica la funzione così:
PHP:
function seleziona_messaggi()
{
	global $db_id;

	$sql = "SELECT * FROM messaggi_scor ORDER BY data DESC";
	$ris = mysql_query($sql, $db_id);

	$messaggio = array();

	while($assoc = mysql_fetch_assoc($ris))
		$messaggio[$assoc['id']] = $assoc;

	return $messaggio;
}
Perché vi ostinate ad usare il ciclo for quando ce ne sono altri più performanti? E poi esegui la funzione ma non ne memorizzi il risultato... modifica anche la visualizzazione così:
PHP:
<?php
$messaggi = seleziona_messaggi();

echo"<table align='center'>
<tr>
<td>Numero</td>
<td>Giocatore</td>
<td>Messaggio</td>
<td>Data</td>
</tr>";


foreach($messaggi as $i => $msg)
{
	echo"<tr>
	<td>".$i ."</td>
	<td>".$msg['giocatore']."</td>
	<td>".$msg['messaggio']."</td>
	<td>".$msg['data']."</td>
	</tr>
	</table>";
}
?>
 

marf

Utente Attivo
4 Nov 2009
30
0
0
Grazie mille, così me lo visualizza, infine vorrei che questi messaggi (gli ultimi 10) praticamente si alternassaero ogni 5 secondi, tipo dal primo dopo 5 secondi viene il secondo ecc... arrivati al decimo si reincomincia dal 1, secondo me bisogna utilizzare js oltre che PHP, ma non so bene come fare, così almeno questo script riesco a finirlo :)

Grazie in anticipo...
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Non ho capito bene. Tu praticamente vuoi visualizzare gli ultimi 10 messaggi, però a scorrimento? Oppure vuoi visualizzare per 30 secondi il testo del primo, poi il testo del secondo, e così via? Nel primo caso, secondo me è meglio creare un sistema di paginazione. La tua idea è abbastanza scomoda, sia da realizzare, sia per l'utente...
 

marf

Utente Attivo
4 Nov 2009
30
0
0
No tipo allora, nella pagina del villaggio mettiamo si vede un div dove si vedono scorrere i messagig scritti dagli utenti, ma solo i primi 10 con un intervallo l'uno dall'altro di 5 secondi, tipo i messagig appaiono così:

marf: Ciao io sono marf

[passano 5 secondi]

marco: Ciao io sono marco

[passano 5 secondi]

luca: Ciao io sono luca


ecc...

Arrivati al 10 messaggio si torna al primo, questi messaggi devono venire visuallizzati in un piccolo div, sono messaggi di massimo 75 caratteri...
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ah, scusa, io pensavo che questi fossero messaggi privati, invece tu hai realizzato una specie di shoutbox. Comunque, si può fare anche senza AJAX. Quella che ti propongo io è una tecnica semplice ma meno efficiente, usando AJAX invece è più complicato (e io stesso, non avendo mai usato AJAX, avrei bisogno di aiuto) ma sicuramente più potente.
 

marf

Utente Attivo
4 Nov 2009
30
0
0
Esatto! Una specie di shoutbox, fino ad ora con questo script prelevo i messaggi e va benissimo, ora però non so come visualizzarli uno alla volta ed ad un intervallo di 5 secondi fare apparire il messagigo che segue (tipo un ciclo)...
 

marf

Utente Attivo
4 Nov 2009
30
0
0
Nessuno ha proprio qualche idea su come fare apparire alternati a tempi regolari questi messaggi ?
 
Discussioni simili
Autore Titolo Forum Risposte Data
otto9due Più chiavi in array con array_key_exists() PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
S [PHP] Confrontare due array con valori quasi uguali PHP 2
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
G sql select con array in php PHP 1
A [PHP] Script con array con numeri che iniziano per 00 PHP 2
Emix [Javascript] Somma con array input HTML Javascript 1
F [PHP] Problema con array multidimensionale PHP 4
D [PHP] Unire 2 Array con ID in comune PHP 0
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
P [Javascript] Array da file di testo, con lettura temporizzata senza refresh Javascript 3
R [PHP] Problema stampa array bidimensionali con formula $html.=<<<myHtml... PHP 2
L [PHP] if con array per controllare l'ip locale PHP 1
Andrea Perrone [Javascript] scacchiera con Array multidimensionale Javascript 4
Daniele450 [Javascript] Slide show in java script, senza array con nome visibile dell'immagine Javascript 2
fabryx [PHP]RISOLTO: eliminazione riga con singolo valore duplicato in array PHP 19
Monital [PHP] Creare un array da stringa con diversi spazi PHP 3
S problema con gli array in javascript Javascript 12
S Problemi con gli array in javascript Java 2
C Problema con creazione array PHP 7
V Problema con array PHP 8
neo996sps PHP/MySQL - Problema con generazione array PHP 14
JackIlPazzo Array associativo con chiave incrementale? PHP 0
M Ajax array con immagini Ajax 1
asevenx Funzione strpos con l'utilizzo di array PHP 4
M form con array strutturato PHP 1
I Lite con array :-) PHP 0
L problema array con le sessioni PHP 1
M Ordinare array multidimensionale con esclusioni Javascript 0
M array con range di valori PHP 1
G Inserimento array proveniente da un modulo di registrazione con PHP e MySQL PHP 6
H [RISOLTO] Problemi con gli array jQuery 4
A [risolto] caricare con un ciclo For dei file PHP inclusi in una variabile array PHP 3
F [risolto] Ciclo di un array con azioni diverse PHP 26
F Problema formattazione data e creazione array con nuove date Javascript 2
L Andare a capo con gli array non troncando le parole Classic ASP 1
F creare un array con dati json Javascript 3
F problema Json con Array jQuery 1
B ciclo con array, assegnare una classe differente per ciascun risultato PHP 3
S Problema con inserire la select in un array PHP 2
E Problema con array multipli Javascript 1
L login semplice con array PHP 10
S Problema con 2 funzioni:array,select dinamica Javascript 21
Shyson Intercettare url nell'array e traformarlo con str_ireplace PHP 0
P Problema con array e foreach PHP 15
L Problema con un array e il $$ PHP 2
Monital Ciclo su array con valorui dispari PHP 5
Monital Array con nome variabile uguale alla variabile e corrispondente valore PHP 4
Monital Variabile contenente array con valori dientici e con chiavi uguali PHP 11

Discussioni simili