- Home
- Categorie
- Coding e Sistemistica
- PHP
- query actor
-
query actor
Ritorno, spero che qualcuno risolva
domanda:
Linda Blair ha recitato in Exorcist, ma anche Ellen Burstyn e Max von Sydow.
Voglio visualizzare gli attori (e i film) con cui ha lavorato insieme, ma non lei.
questa query mi visualizza l'attore e i film, ma non e' quello che voglio
[PHP]
$actor_id = $_GET["id"];$query = "select a.nome, f.movie_title, f.film_id, performer_aka, year
from actor a
inner join film_actor fa on fa.actor_id = a.actor_id
inner join film f on f.film_id = fa.film_id
where a.actor_id =" . $actor_id;[/PHP]
schema (semplificato) database
Table -> actor
actor_id
nome
Table-> film
film_id
movie_title
Table-> film_actor
actor_id
film_idl'attore e il film hanno una relazione nel database con film_actor
-
Come non detto, ho risolto da solo, come al solito
-
problema con la visualizzazione della foto
mi dovrebbe restituire questo
[HTML]http://localhost/cinema/image_upload/actor/uploads/Linda Blair(54)/Linda Blair.jpg[/HTML]
invece il percorso e' questo
[HTML]http://localhost/cinema/image_upload/actor/uploads/Linda Blair(54)/[/HTML]
non capisco
[PHP]
<img src="image_upload/actor/uploads/<?=$row->nome?> (<?=$row->actor_id?>)/<?=$row->foto?>" width="120px" height="170px" style="border:4px solid #333333;">
[/PHP]
-
sistemato il percorso delle foto, ma rimane un problema, vengono visualizzati gli attori che hanno lavorato insieme ma nei film non sono presenti tutti
esempio:
Max von Sydow ha recitato nell' Esorcista e nell' Esorcista II-L'eretico con Linda Blair e gli altri
ma viene visualizzato solo un film
ecco la query
[PHP]
<?phprequire_once("connetti.php");
$actor_id = $_GET["id"];
// questa query visualizza i film con cui ha lavorato l'attore
$query = "select actor_id, film_id,
(select nome from actor a where a.actor_id = am.actor_id) as nome,
(select foto from actor a where a.actor_id = am.actor_id) as foto,
(select movie_title from film a where a.film_id = am.film_id) as movie_title,
(select year from film a where a.film_id = am.film_id) as year,
(select film_id from film a where a.film_id = am.film_id) as film_id,
count() as film
from film_actor am
where film_id in (select film_id from film_actor where actor_id = $actor_id)
and actor_id <> $actor_id
group by actor_id
order by count() asc";[/PHP]
spero che qualcuno mi aiuti, non riesco a trovare la soluzione
questo e lo screen per capire
-
ok, ho fixato il codice, adesso riesco a visualizzare anche gli altri film mancanti
resta il problema delle foto doppie, si potrebbe fare in modo di raggrupparle e visualizzare solo 1 foto attore ma con i film sotto
esempio:
Max von Sydow
Exorcist II - The Heretic
The Exorcist
codice fixato
[PHP]
select actor_id, film_id,
(select nome from actor a where a.actor_id = am.actor_id) as nome,
(select foto from actor a where a.actor_id = am.actor_id) as foto,
(select movie_title from film a where a.film_id = am.film_id) as movie_title,
(select year from film a where a.film_id = am.film_id) as year,
(select film_id from film a where a.film_id = am.film_id) as film_id,
(select credited from film a where a.film_id = am.film_id) as credited,
count(*) as film_id
from film_actor am
where film_id in (select film_id from film_actor where actor_id = $actor_id)
and actor_id <> $actor_id
group by actor_id, film_id
order by film_id ASC[/PHP]
-
Ciao a tutti,
qualcuno mi puo' aiutare a risolvere questo quesito?