Buongiorno!
Sto facendo uno script che mi peschi gli articoli correlato a quello che si sta leggendo su un sito che vende i dvd online.
Ho i questi campi nel database
titolo
titolo_originale
attori (separati da virgola in un unico campo per ogni film es. attore1, attore2, attore2)
registi (anche questi separati da virgola nei rari casi in cui ce ne piu di uno)
Ho pensato di farlo in questo modo
Ovviamente gli explode non gli scrivo.
Ho reato 5-6 while che pensano i risultato con un limite di 2-3 risultati nei quali inserisco where id != $_GET['id'] cosi non metto nei result l'articolo attuale.
ecco i while che eseguo
1 - regexp attore1 + regista1 nei appositi campi.
2 - prime 2 parole del titolo e del titolo originale.
3 - prima parola titolo + attore 1
4 - attore 1
5 - attore 2
6 - regista
e poi altri con tutti con un controllo dei numero dei risultati per non superare i 10 suggerimenti.
Giunti qui tutto funziona abbastanza bene con suggerimenti verosimili.
Il problema e che ogni 1 di questi while lavora in modo indipendente e mi capita quasi sempre di trovare film doppi.
La soluzione è semplice inserire nelle query dei while successivi where id NOT in (id già utilizzati nei while precedenti) Ma non so come poterlo fare.
Come posso fare qualcosa di simile:
Codice PHP:
SELECT * FROM film WHERE titolo LIKE \"%$tgl_1%$tgl_2%\" and NOT id = \"$id\" ORDER by rand() limit 3");
while {
qui stampo i risultati e credo la lista dei id gia utilizzati.
$id_da_ignorare = "$id, "
}
il prossimo
Codice PHP:
SELECT * FROM film WHERE attori regexp \"$attore1\" and id NOT IN (\"$id_da_ignorare\") ORDER by rand() limit 3");
while {
qui stampo i risultati e credo la lista dei id gia utilizzati.
$id_da_ignorare2 = "$id, "
}
$id_da_ignorare3 = "$id_da_ignorare $id_da_ignorare2"
La Domanda è come posso passare la varibile $id_da_ignorare alla query successiva che si trova fuori dal ciclo?