• User Attivo

    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_id

    l'attore e il film hanno una relazione nel database con film_actor

    image


  • User Attivo

    Come non detto, ho risolto da solo, come al solito :fumato:


  • User Attivo

    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 :arrabbiato:

    [PHP]

    <img src="image_upload/actor/uploads/<?=$row->nome?> (<?=$row->actor_id?>)/<?=$row->foto?>" width="120px" height="170px" style="border:4px solid #333333;">
    [/PHP]


  • User Attivo

    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]
    <?php

    require_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

    image


  • User Attivo

    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]


  • User Attivo

    Ciao a tutti,
    qualcuno mi puo' aiutare a risolvere questo quesito?