bacheca per visualizzare i messaggi inseriti in due tabelle diverse di un database

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
salve a tutti, avrei bisogno del vostro aiuto. Dovrei creare una bacheca che visualizzi i post e i relativi commenti in modo da avere gli ultimi 10 inserimenti. Preciso che i post e i commenti vengono inseriti all'interno di un database tramite due tabelle, 'post' e 'commenti'. Considerando che entrambi hanno il campo 'data' (che indica la data dell'inserimento nel db), come faccio a creare una bacheca che appunto visualizzi le ultime 10 visualizzazioni? grazie

faccio un esempio per essere più chiaro:

tabella "post"
- id: 1
- nome: federico
- post: ciao come va?
- data: 28/10/2012 ora 20:00

- id: 2
- nome: francesco
- post: c'è qualcuno online?
- data: 29/10/2012 ora 10:00

- id: 3
- nome: stefano
- post: ciao a tutti!
- data: 29/10/2012 ora 21:00
tabella "commenti"
- id: 1
- risposta id: 1
- nome: francesco
- post: tutto bene
- data: 29/10/2012 ora 09:00

- id: 2
- risposta id: 3
- nome: federico
- post: ciao stefano!
- data: 30/10/2012 ora 15:00

- id: 3
- risposta id: 1
- nome: stefano
- post: ciao federico, te come va?
- data: 30/10/2012 ora 16:00

quindi dovrei visualizzare
1- ciao come va?
2- tutto bene
3- c'è qualcuno online?
4- ciao a tutti!
5- ciao stefano!
6- ciao federico, te come va?

ho provato a sintetizzare con un esempio quello che vorrei fare, spero sia chiaro. Grazie
 
ciao
prova con una cosa del genere
PHP:
<?php
//.....
$q_1=mysql_query( "SELECT * FROM post ORDER BY data LIMIT 10");//o il limit che vuoi
while($r_1=mysql_fetch_array($q_1)){
	echo =$r_1['post']."<br />";
	$id=$r_1['id'];
	$q_2=mysql_query( "SELECT * FROM commenti WHERE risposta_id=$id ORDER BY data LIMIT 1");
	$r_2=mysql_fetch_array($q_2);//se alla query sopra metti un limit maggiore di 1 )più commenti) devi fare un altro while
	echo =$r_2['post']."<br />";
}
//....
?>
 
Sono riuscito a risolvere :D praticamente ho creato una nuova tabella e poi con INSERT INTO ho inserito i campi delle due tabelle. Dopo di che ho creato un SELECT con i campi della nuova tabella, l'unico problema è che vorrei ordinare il tutto secondo il campo "data" che ha il formato (gg/mm/aa ora hh:mm). Come faccio ad ordinarlo in modo decrescente? Se uso semplicemente ORDER BY data DESC mi considera solo i giorni
 
ciao
è il problema di quando si salvano le date in formato "umano" italiano, per avere l'ordinamento o si salvano in timestamp o in formato YY/mm/gg e poi si traformano a video nel formato che si preferisce
 
beh in precedenza le ho salvate così perché mi conveniva, se fossi stato più lungimirante avrei fatto altrimenti.. ok proverò a salvare in formato inglese e ti farò sapere. grazie mille
 

Discussioni simili