Gentili utenti di HTML.it,
mi rivolgo a voi perché devo scrivere un codice che non ho la possibilità di testare.
Vi comunico la mia esigenza:
Sto realizzando uno script che raccoglie da una tabella chat in cui sono presenti i vari id utenti insieme ai loro messaggi.
Struttura tabella:
id (identificativo univoco riga), id_sender (id di chi invia), id_receiver (id a cui è rivolto), text (testo del messaggio), send_time (timestamp intero di quando è stato inviato il messaggio).
Praticamente lo script che devo creare (di cui a voi chiedo soltanto la query per estrarre i dati) deve restituirmi un elenco di chat una per ogni utente in cui è presente l'ultimo messaggio scambiato.
Quindi la query dovrebbe interrogare il db, guardare dove l'id dell utente di cui vogliamo estrarre le "discussioni" è presente nei campi id_sender o id_receiver e associargli l'ultima messaggio di testo che è stato comunicato tra i due (ordine cronologico comprensibile da send_time).
un esempio di dati estratti: (presupponendo che 1 sia l'id dell'utente di cui vogliamo estrarre le conversazioni):
1,2, ciao come va, 998282292999
1, 4, ciao tutto bene, 383888888333
3, 1, si ok bello oggi, 383883838383
7, 1, la vita mia, 9393939399393
1, 74, la terra si gira, 393939939393
i primi due sono gli id degli utenti (e l'id 1 deve appunto esserci), il secondo è il messaggio, e l'ultimo è il timestamp del messaggio.
La mia attuale query è impostata cosi:
"SELECT id_sender, id_receiver, text, MAX(send_time) FROM ib_chat WHERE id_sender = $id OR id_receiver = $id GROUP BY id_sender, id_receiver"
ma temo sia errata.
Grazie per l'attenzione e spero in un riscontro. Buona serata