Ciao,
ho creato per un sito un mini social, la parte su cui mi servirebe un'aiuto è la creazione di una pagina home stile facebook. Ogni utente ha la propria bacheca e su questa pagina home dovrebbero comparire tutti i post pubblicati dagli amici di un utente eventualmente usando un criterio di data: per esempio i post pubblicati negli ultimi 3 giorni.
Ovviamente i dati sono prelevati da DB. Ho una tabella in cui registro le amicizie tramite gli id. Per capirci: se tizio è l'utente con id uguale a 1 e caio è l'utente 2 e questi sono amici, nella tabella delle amicizie avrò 2 entry per registrare che tizio è amico di caio e viceversa.
Per la pagina home faccio quanto segue:
Codice PHP:
// Vado nella tabella delle amicizie e prelevo gli id dei miei amici
$query_elenco="SELECT * FROM social_amicizie WHERE id_utente ='$_SESSION[user_id]';";
$result_elenco=mysql_query($query_elenco) or die ("impossibile eseguire: $query_elenco");
while($row_elenco=mysql_fetch_array($result_elenco)){
// Prendo gli id degli amici dell'utente di sessione
$id_amico=$row_elenco[id_amico];
$vettori_id=$vettori_id.",".$id_amico;
}
$vettori_id=substr($vettori_id, 1);
$vet=explode(",",$vettori_id);
mi costruisco un vettore con gli id degli amici di un utente. Mi creo un criterio sulla data, quello che poi faccio è fare un ciclo sugli id e prelevare dalla tabella dei post quelli scritti dall'utente con l'id selezionato in $vettore. Il codice è:
Codice PHP:
foreach($vet as $val) {
$query_post="SELECT * FROM social_messaggi WHERE (id_autore='$val' AND tipo_msg='a_tutti') AND (data_invio>=$meno_3 OR data_invio<=$today) ORDER BY data_invio DESC";
$result_post=mysql_query($query_post) or die ("impossibile eseguire: $query_post");
while($row_post=mysql_fetch_array($result_post)) {
$post=$row_post[msg];
$data=$row_post[data_invio];
echo "$post
";
// Recupero i dati di chi l'ha scritto
$autore=funzione_utente($val); //è una function per recuperare i dati anagrafici dell'autore del post
echo "Pubblicato il [b]$data[/b]
";
echo "da [b]$autore[1] $autore[2] [/b]
";
echo "------------
";
}
}
in questo modo però ottengo i post scritti da caio ordinati per data, poi quelli di tizio ordinati per data. Con questo modo recupero a gruppi i post.
C'è un modo per recuperare in un unica volta i post degli amici di un dato utente e ordinarli globalmente per data?
spero di essere stato chiaro.
grazie.