Ho un problema, non riesco ad ottenere i risultati che vorrei con un'interrogazione al mio database, e se sono qui è perché non credo di poter riuscire questo problema da soloquindi chiedo aiuto.
Ho due tabelle: POST e TAG
Nella tabella POST vengono tenuti tutti i post pubblicati da tutti gli utenti del mio piccolo social network con diversi campi, come ad esempio
IDP: id del post | IDU: id utente del post | TAG: parole chiave associate a questo post (max 3).
Nella tabella TAG, invece, ho solo due campi, ovvero
IDU: id utente | TAG: tag a cui è iscritto l'utente.
Ora mi spiego meglio: ogni utente può iscriversi ad un numero indefinito di tag, così da poter vedere sulla sua home anche tutti i post che contengono nel campo TAG una tag simile, o uguale, a quella a cui è iscritto.
Quindi pensavo di inserire nella tabella TAG molti record, ogni uno dei quali ha una diversa tag nel campo TAG, e ovviamente nel campo IDU il mio id, così da potere vedere sulla mia home i post contenenti tag simili a quelle, alle quali sono iscritto.
Per chi non avesse ancora capito: se io mi sono iscritto alla tag #STEVEJOBS vorrei che sulla mia home venissero stampati tutti i post contenenti una sequenza di lettere simile a quella della mia tag, come #STEVE, #JOBS, oppure anche #EVEJOB. Per questo mi sono servito dell'operatore LIKE.
Quindi se io fossi il compilatore, se così si chiama, farei questo: Andrei prima nella tabella TAG a prendere tutti i record con il mio stesso IDU e poi prenderei tutte le TAG.
Poi andrei in POST e prenderei tutti i dati dei post con TAG simili o uguali a quelle a cui sono iscritto.
Le ho provate tutte, veniamo al codice:
Con questo script il compilatore mi stampa solo i post a cui è associata l'ultima tag presa dalla tabella TAG con id uguale al mio.Codice PHP:$sql = "SELECT * FROM TAG WHERE IDU=$idu";
$que = mysql_query($sql);
while ($row = mysql_fetch_assoc($que)) {
$ris = $row['TAG']; /* TAG */
}
$sql = "SELECT * FROM POST WHERE TAG LIKE '%$ris%'";
$que = mysql_query($sql);
while ($row = mysql_fetch_assoc($que)) {
$text = $row['TESTO']; /* POST */
echo $text;
}
Dove erro, e perché, come risolvo?
Se ancora non è chiaro il mio problema, sono qui![]()

quindi chiedo aiuto.
Rispondi quotando
