+ Rispondi alla Discussione
Risultati da 1 a 42 di 42

query per film actor

Ultimo Messaggio di Alex_2019 il:
  1. #1
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143

    query per film actor

    Buongiorno, sono nuovo, spero mi possiate aiutare

    Sto costruendo un sito in php, argomento cinema, per ora sperimentale per capire il codice, poi viene migliorato e aggiunti altri dati
    Il database è in mysql cosi formato

    Database struttura: 3 tabelle

    actor: <------Table
    actor_id
    photo
    name

    film: <------Table
    film_id
    movie_title
    year

    film_actor: <------Table
    actor_id
    film_id

    Ho creato una pagina in cui si effettua la ricerca attori e tramite una scelta si passa ad un'altra tramite una query
    Nella pagina attori vengono visualizzati i dati della tabella actory e dei film

    cinema.php

    Codice PHP:
    <?php           

    $con 
    mysqli_connect("localhost","root","","xxx");

     
    $id $_GET['id'];
                    
    $id mysqli_real_escape_string($con,$id);
                    
    $query mysqli_query($con"SELECT film.* FROM film
    JOIN film_actor ON film_actor.film_id = film.film_id
    WHERE film_actor.actor_id = " 
    intval($_GET['id']));
                    while(
    $row=mysqli_fetch_array($query)){
                        
    ?>
                                
            
    <tr class="we">

    <td><?php echo "<a href=\"film.php?id=" $row['film_id'] . "\">" $row['movie_title'] . "</a>";?></td>

    <td><?php echo $row['year']; ?></td>
    film.php

    Codice PHP:
     $film_id $_GET["id"];
    $query mysql_query ("SELECT * FROM film  WHERE film_id="$film_id$db);

    $row mysql_fetch_array ($query); 


    Codice PHP:
    <p class="bioheading">
    <p class="bioheading">Title</p><p class="biodata"><td><?php echo $row['movie_title']; ?><td></p>
    <p class="bioheading">Year</p><p class="biodata"><td><?php echo $row['year']; ?></td></p>
    nella pagina film.php oltre alle informazioni del film ci sono anche quelli degli attori che vorrei visualizzare,
    ricordo che nella pagina cinema.php visualizzo sia l'attore che la lista dei suoi film
    ho inserito questo, ma manca la query

    Codice PHP:
    <p><?php echo $row['actor_id']  . $row['nome'?>
    Come fare?

  2. #2
    User L'avatar di andreadragotta
    Data Registrazione
    Oct 2011
    Località
    Bologna
    Messaggi
    54
    Ciao,

    Se non ho capito male quello che vuoi ottenere nella pagina film.php è il dettaglio del film scelto e la lista degli attori presenti.

    Ci sono due strade per raggiungere questo risultato, la prima è secondo me la migliore.

    1. La query che potresti fare è la seguente:

    Codice:
    SELECT a.actor_id, a.photo, a.name FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id WHERE fa.film_id = {film_id}
    dove {film_id} è la variabile php contenente l'id del film scelto.

    Questo vuol dire che avrai due query differenti, una per prendere i dati del film (che hai già scritto correttamente tu) e una per prendere i dati degli attori.

    2. Se invece vuoi fare una query unica potresti fare:

    Codice:
    SELECT * FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id JOIN film as f ON f.film_id = fa.film_id WHERE fa.film_id = {film_id}
    dove {film_id} è la variabile php contenente l'id del film scelto.

    Così facendo si ottiene un array che in ogni riga contiene i dati dell'attore e del film selezionato.

    Per la visualizzazione la cosa migliore è di prendere i dati dei film dal primo elemento dell'array e poi fare un ciclo per visualizzare i dati degli attori.


    Spero di essere stato abbastanza chiaro

  3. #3
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Ciao andreagotta
    grazie per la risposta, purtroppo come ho scritto non capisco molto di php, il codice che sto costruendo e' preso da internet o altro
    sono autodidatta, cerco d'imparare

    nella pagina film.php oltre alla scheda completa ci possono essere anche molti attori,

    ho inserito questo ma ricevo errore e naturalmente la pagina e' vuota

    Codice PHP:
    $db mysql_connect ("localhost""xxx""xxx");
    // Create connection
    mysql_select_db ("xxx"$db);
    // Check connection
    if ($conn->connect_error) {
        die(
    "Errore di Connessione: " $conn->connect_error);
    }

    $film_id $_GET["id"];
    $query mysql_query ("SELECT a.actor_id, a.photo, a.name FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id WHERE fa.film_id = {film_id}="$film_id$db);

    $row mysql_fetch_array ($query);

    ?> 
    questo e' l'errore

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in W:\domains\localhost\Testcerca_2019\film.php on line 15

    Codice PHP:
    linea 15$row mysql_fetch_array ($query); 
    ps: stranamente non mi arrivano le notifiche sull'email

  4. #4
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Citazione Originariamente Scritto da andreadragotta Visualizza Messaggio
    Ciao,

    1. La query che potresti fare è la seguente:

    Codice:
    SELECT a.actor_id, a.photo, a.name FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id WHERE fa.film_id = {film_id}


    2. Se invece vuoi fare una query unica potresti fare:

    Codice:
    SELECT * FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id JOIN film as f ON f.film_id = fa.film_id WHERE fa.film_id = {film_id}

    1.
    non funziona, ho dovuto sostituire name con nome e inserito il segno $ in {film_id}, cosi {$film_id}



    2.
    questa funziona visualizzo l'id e il nome, ma sto usando 2 query

    questa per i film

    Codice PHP:
    <?php


    $db 
    mysql_connect ("xxx""xxx""xxx");
    // Create connection
    mysql_select_db ("xxx"$db);
    // Check connection
    if ($conn->connect_error) {
        die(
    "Errore di Connessione: " $conn->connect_error);
    }

    $film_id $_GET["id"];
    $query mysql_query ("SELECT * FROM film  WHERE film_id="$film_id$db);

    $row mysql_fetch_array ($query);

    ?>
    e per gli attori

    Codice PHP:
    <?php


    $db 
    mysql_connect ("xxx""xxx""xxx");
    // Create connection
    mysql_select_db ("xxx"$db);
    // Check connection
    if ($conn->connect_error) {
        die(
    "Errore di Connessione: " $conn->connect_error);
    }

    $film_id $_GET["id"];
    $query mysql_query ("SELECT * FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id JOIN film as f ON f.film_id = fa.film_id WHERE fa.film_id = {$film_id}");


    $row mysql_fetch_array ($query);

    ?>
    ma tu ha specificato che la 1 e' meglio
    Ultima modifica di Alex_2019; 04-07-19 alle 23:19

  5. #5
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    problema, ho scoperto che se inserisco 2 attori nello stesso film viene visualizzato solo 1, qualcosa non va' nel codice

  6. #6
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    andreagotta grazie per il codice ma ci sono problemi che non riesco a risolvere , in film.php la query restituisce solo un attore, in realta' sono di piu'
    puoi fixarlo?

  7. #7
    User L'avatar di andreadragotta
    Data Registrazione
    Oct 2011
    Località
    Bologna
    Messaggi
    54
    Ciao, ti avevo incollato solo la query SQL, ti metto di seguito il codice php che dovrebbe soddisfare la tua richiesta.

    Codice PHP:
    <?php
    $db 
    mysql_connect ("xxx""xxx""xxx");
    mysql_select_db ("xxx"$db);
    if (
    $conn->connect_error) {
        die(
    "Errore di Connessione: " $conn->connect_error);
    }

    $film_id $_GET["id"];
    $query_film mysql_query("SELECT * FROM film WHERE film_id = "$film_id);
    $row mysql_fetch_array($query_film);

    $query_actors mysql_query("SELECT a.actor_id, a.photo, a.name FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id WHERE fa.film_id = "$film_id);
    $actors mysql_fetch_array($query_actors);

    if(
    count($row) != 1){
        echo 
    "Errore";
    }else{
    ?>
        <h1><?= $row[0]['movie_title']; ?></h1>
        <h3><?= $row[0]['year']; ?></h3>
        
        <strong>Lista degli attori</strong>
        <ul>
        <?php foreach($actors as $actor){ ?>
            <li><img src="<?= $actor['photo'?>" width="100px" alt="<?= $actor['name'?>"><?= $actor['name'?></li>
        <?php ?>
        </ul>
    <?php
    }
    ?>

  8. #8
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    ciao Andrea

    mi da errore

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in W:\domains\localhost\Testcerca_2019\film.php on line 13
    Errore

    linea 13

    Codice PHP:
    $actors mysql_fetch_array($query_actors); 

  9. #9
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    questo sembra funzionare, ci vuole il ciclo while

    per i film c'e' l'altra query

    film.php

    Codice PHP:
    <?php


    $db 
    mysql_connect ("localhost""xxx""xxx");
    // Create connection
    mysql_select_db ("xxx"$db);
    // Check connection
    if ($conn->connect_error) {
        die(
    "Errore di Connessione: " $conn->connect_error);
    }

    $film_id $_GET["id"];
    $query mysql_query ("SELECT * FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id JOIN film as f ON f.film_id = fa.film_id WHERE fa.film_id = {$film_id}");


    while(
    $row=mysql_fetch_array($query)){ 

    ?>


    <div class="castbox"><p><img class="headshot" src="<?php echo $row ['nome'?>"><br><?php echo "<a href=\"cinema.php?id=" $row['actor_id'] . "\">" $row['nome'] . "</a>";?></a><br><i><?php echo $row['credited'?></i><br><br>&nbsp;<br>&nbsp;<br></div>

    <?php
                    
    }
                
    ?>
    Testato e sembra funzionante
    Ultima modifica di Alex_2019; 05-07-19 alle 15:49

  10. #10
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Altra query da risolvere, grazie Andrea per il suo contributo

    in film.php ci sono queste informazioni

    Codice PHP:

    <div class="castbox"><p><img class="headshot" src="<?php echo $row ['nome'?>"><br><?php echo "<a href=\"cinema.php?id=" $row['actor_id'] . "\">" $row['nome'] . "</a>";?></a><br><i><?php echo $row['credited'?></i><br><br>&nbsp;<br>&nbsp;<br></div>

    in cinema.php nella lista film attori

    Codice PHP:
    <?php             

    $con 
    mysqli_connect("localhost","root","","xxx"); 

     
    $id $_GET['id']; 
     
                    
    $id mysqli_real_escape_string($con,$id);  
                    
    $query mysqli_query($con"SELECT film.* FROM film  
    JOIN film_actor ON film_actor.film_id = film.film_id  
    WHERE film_actor.actor_id = " 
    intval($_GET['id']));
                    while(
    $row=mysqli_fetch_array($query)){
                        
    ?>
                                    
                
    <tr class="we">

    <td><?php echo "<a href=\"film.php?id=" $row['film_id'] . "\">" $row['movie_title'] . "</a>";?></td>

    <td><?php echo $row['year']; ?></td>

    <td><?php echo $row['credited']; ?></td>


     <?php
                    
    }
                
    ?>


    quello che vorrei adesso e' collegare il campo
    Codice PHP:
    <?php echo $row['credited']; ?>
    di film.php con quello di cinema.php

    i dati di credited sono visibili in film.php ma non in cinema.php (nella lista)

    film_actor < -----------Tabella

    actor_id

    film_id

    credited
    Ultima modifica di Alex_2019; 05-07-19 alle 15:48

  11. #11
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    227
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Scusate se mi intrometto, ma nel 2019 non si possono vedere più le funzioni di mysql native. Né per didattica, né per test, per nulla proprio!

    Utilizza PDO per interfacciarti con MySQL

    https://it.phptherightway.com/#databases

    Al massimo MySQLi
    Sviluppo siti web dinamici e gestionali | Flaviobiscaldi.it

  12. #12
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Citazione Originariamente Scritto da flaviors200 Visualizza Messaggio
    Scusate se mi intrometto, ma nel 2019 non si possono vedere più le funzioni di mysql native. Né per didattica, né per test, per nulla proprio!

    Utilizza PDO per interfacciarti con MySQL

    https://it.phptherightway.com/#databases

    Al massimo MySQLi
    Ciao flaviors200.
    Hai perfettamente ragione in quello che dici e mi trovi pienamente d'accordo, anche perchè sono funzioni deprecate da anni che non girano quasi più da nessuna parte. Detto questo però, questa non è una scuola, ma un luogo ove cercare confronto e chiedere aiuto.
    La parte della richiesta in questo thread è una corretta Query SQL per ottenere dei dati, più che l'uso di PHP e va benissimo che tu dica di usare PDO, ma allora poni un esempio pratico, così che possa rimanere qui di aiuto anche per qualcun altro, perchè siamo tutti in grado di leggere php.net, ma non tutti abbiamo la stessa esperienza in questo settore.
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  13. #13
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    227
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Ciao Stefano,

    non voglio certo fare il professore qua dentro, anche perchè di esperienza ne ho ma imparo sempre qualcosa di nuovo tutti i giorni, e credo che si possa imparare anche dai forum

    L'esempio pratico in realtà c'è e lo avevo pure linkato

    http://it.phptherightway.com/#databases

    Posso anche riportare il codice qui sul forum, però l'editor del codice molte volte non indenta bene e fatico parecchio a farlo a manina con gli spazi, dunque o lo posto su pastebin oppure, come in questo caso, il codice è già nella risorsa linkata (tra l'altro ancorata al paragrafo sui database).

    Grazie comunque per il tuo intervento.
    Sviluppo siti web dinamici e gestionali | Flaviobiscaldi.it

  14. #14
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Citazione Originariamente Scritto da flaviors200 Visualizza Messaggio
    Ciao Stefano,

    non voglio certo fare il professore qua dentro, anche perchè di esperienza ne ho ma imparo sempre qualcosa di nuovo tutti i giorni, e credo che si possa imparare anche dai forum

    L'esempio pratico in realtà c'è e lo avevo pure linkato

    http://it.phptherightway.com/#databases

    Posso anche riportare il codice qui sul forum, però l'editor del codice molte volte non indenta bene e fatico parecchio a farlo a manina con gli spazi, dunque o lo posto su pastebin oppure, come in questo caso, il codice è già nella risorsa linkata (tra l'altro ancorata al paragrafo sui database).

    Grazie comunque per il tuo intervento.
    Io ti ringrazio per la partecipazione che hai nel forum, ma oggettivamente parlando (non soggettivamente), quegli esempi non spiegano nulla, ma forse dei concetti dove fare copia e incolla per chi, già conosce le strutture di PDO e può prenderne spunto per riscriverle, perchè a livello codice, sono bucate e prive di controlli.
    Se conosci PDO, sai benissimo che esistono una serie ben definita di istruzioni che vanno passate alle variabili e che fanno parte della classe stessa, che li, non vengono neanche menzionate compromettendo di molto la stabilità e sicurezza delle connessioni al database.
    Questo intendevo. O si fanno degli esempi concreti e ben definiti oppure è preferibile non aggiungere altre nozioni a metà a delle persone che magari cercano aiuto su tutt'altro argomento, che ricordo essere una query SQL.
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  15. #15
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Salve a tutti,
    come ho specificato nel thread sono un principante che conosce poco il php, quel poco che ho imparato non mi permette di risolvere i problemi legati a questo linguaggio,
    per questo chiedo aiuto a voi che siete molto piu' esperti di me, spero con il tempo di migliorare e aiutare un giorno forse qualcuno allo mio stesso livello.
    Il PDO non lo conosco, parto dalle basi piccole, dopotutto il mio database lo uso solo io.
    Grazie a tutti, e spero mi aiutate

    ps: non sono un programmatore, ne opero in questo campo, il mio lavoro e' di un altro tipo,
    quello che faccio e' una passione.

  16. #16
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Ciao Alex, cerco di aiutarti anche se sono dal telefono e mi rimane veramente difficile scrivere una corretta SQL, però il concetto te lo posso illustrare.
    Per estrarre gli attori di un dato film, devi necessariamente effettuare un query su di essi e non sul film da estrarre e lo puoi fare eseguendo un INNER JOIN.
    In pratica, la tua query è errata dal punto di vista delle estrazioni, non proprio nel metodo.
    Ovvero.
    Select actor.name as name, actor.photo as photo, film.movie_title as movie_title, film.year as year FROM film_actor INNER JOIN actor on film_actor.actor_id = actor.actor_id INNER JOIN film on film.film_id = film_actor.film_id where actor_film.film_ id = $film_id

    Mi spiace che sono in giro e non riesco ad aiutarti al meglio.
    Prova e fammi sapere.

  17. #17
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Ciao Ultima,
    a quale codice ti riferisci?
    a film.php o cinema.php?
    perche' come lo strutturato adesso funziona come volevo io
    certo ci sono ancora molte cose da fare,
    oltre a quello citato sopra (non posso inserire il link al post perche' non sono Premium), ma e' quello prima del vostro intervento

    e questi (dove apriro' altri thread)

    * trovare il metodo per inserire le foto agli attori e i film
    * avere la possibilita' di aggiungere, cancellare, modificare dalla pagina php
    * inserire film scegliendo un attore collegato o viceversa
    ecc...

  18. #18
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Io creerei un unico file, film.php che viene richiesto quando passi la variabile film_id. In questo modo, con una sola query ottieni sia il film richiesto, che la lista degli attori partecipanti in elenco con annessi parametri aggiuntivi.
    Poi, per il caricamento delle immagini, quindi delle photo, cerca su PHP.net la variabile globale $_files e la funzione move_uploaded_file()
    Ci sono esempi pratici, che con un po'di ingegno, riesci tranquillamente ad adattare alle tue esigenze.
    Per le altre cose, il discorso è più ampio perché entrano in gioco altri tipi di fattori, sia di HTML, php e SQL, ma niente di trascendentale.
    Potresti provare a cercare su Google qualcosa tipo: creare un mini CMS in PHP. Almeno per apprenderne i concetti base. Ma a mio avviso, dovresti cercare per prima cosa sullo sperimentare porzioni di codice, per apprenderne la logica. Poi quando hai una buona conoscenza di base, ti lanci nella costruzione di un qualcosa di tuo.

  19. #19
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Ultima ciao,

    Ricreare tutto da zero e' un'impresa per me, ci ho messo mesi per arrivare a questo risultato, sono piu' professionale con il mio mestiere che scrivere php
    come e' scritto il codice adesso sembra funzionare, mancano ancora alcune cose da aggiustare, ma non so come fare,

    se mi aiuti su come visualizzare i credited nella pagina cinema.php ho risolto la fase query

    poi apro altre discussioni per gli altri aiuti

  20. #20
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    227
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Citazione Originariamente Scritto da Ultima Visualizza Messaggio
    Io ti ringrazio per la partecipazione che hai nel forum, ma oggettivamente parlando (non soggettivamente), quegli esempi non spiegano nulla, ma forse dei concetti dove fare copia e incolla per chi, già conosce le strutture di PDO e può prenderne spunto per riscriverle, perchè a livello codice, sono bucate e prive di controlli.
    Se conosci PDO, sai benissimo che esistono una serie ben definita di istruzioni che vanno passate alle variabili e che fanno parte della classe stessa, che li, non vengono neanche menzionate compromettendo di molto la stabilità e sicurezza delle connessioni al database.
    Questo intendevo. O si fanno degli esempi concreti e ben definiti oppure è preferibile non aggiungere altre nozioni a metà a delle persone che magari cercano aiuto su tutt'altro argomento, che ricordo essere una query SQL.
    Ma infatti quelle risorse servono soprattutto a prendere spunto, se uno vuole la pappa bella e pronta è un altro discorso.

    Io ho semplicemente fatto notare che bisognerebbe cambiare approccio e non copiare e incollare il primo codice che si trova in rete, seguendo cattive pratiche.

    Nell'esempio del sito PHP The Right Way c'è tutto quello che serve per connettersi ed eseguire query in maniera sicura, comprese le query parametriche.

    istruzioni che vanno passate alle variabili e che fanno parte della classe stessa, che li, non vengono neanche menzionate compromettendo di molto la stabilità e sicurezza delle connessioni al database
    Cosa intendi? I parametri PDO::MYSQL_ATTR_INIT_COMMAND oppure PDO::ATTR_EMULATE_PREPARES ad esempio?
    Sviluppo siti web dinamici e gestionali | Flaviobiscaldi.it

  21. #21
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Noto con dispiacere che nessuno ha voglia di aiutarmi, pazienza, funziona cosi anche nella vita di tutti i giorni , purtroppo.
    L'altruismo non esiste piu'.
    Ultima modifica di Alex_2019; 07-07-19 alle 19:30

  22. #22
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    forse ho trovato la soluzione, la query e' questa

    Codice PHP:

    require_once("connetti.php");

    $film_id $_GET["id"];
    $query mysql_query ("SELECT credited, note FROM film_actor Where actor_id = {$film_id}");


    while(
    $row=mysql_fetch_array($query)){ 
    il problema e che la devo inserire dentro quest'altra, se no i campi sono sballati, ho provato cosi, ma viene generato un errore


    Codice PHP:
    <?php             

    $con 
    mysqli_connect("localhost","root","","xxx"); 

     
    $id $_GET['id']; 
     
                    
    $id mysqli_real_escape_string($con,$id);  
                    
    $query mysqli_query($con"SELECT film.* FROM film  
    JOIN film_actor ON film_actor.film_id = film.film_id  
    WHERE film_actor.actor_id = " 
    intval($_GET['id']));
                    while(
    $row=mysqli_fetch_array($query)){
                        
                        
    $film_id $_GET["id"];
    $query_2 mysql_query ("SELECT credited, notes FROM film_actor Where actor_id = {$film_id}");


    while(
    $row=mysql_fetch_array($query_2)){                     
                        
    ?>
                                    
                
    <tr class="we">

    <td><?php echo "<a href=\"film.php?id=" $row['film_id'] . "\">" $row['movie_title'] . "</a>";?></td>

    <td><?php echo $row['year']; ?></td>
    <td><?php echo $row['distributor']; ?></td>
    <td><?php echo $row['credited']; ?></td>
    <td><i><?php echo $row['notes'?></i></td>
     
    <?php
                    
    }
                    }
                
    ?>

  23. #23
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Che errore ti stampa?
    Se lo posti, magari si trova la soluzione
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  24. #24
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Ciao Ultima,

    l'errore e' questo

    Codice:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in W:\domains\localhost\Cinema_2019\cinema.phpon line 408
    
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in W:\domains\localhost\Cinema_2019\cinema.phpon line 408
    linea 408

    Codice PHP:
    while($row=mysql_fetch_array($query_2)){ 

  25. #25
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Il tuo errore è molto semplice.
    Tu generi una variabile al primo while chiamata $row, ove al suo interno la sovrascrivi nel secondo ciclo while chiamandola sempre $row.
    Ma soprattutto, a cosa ti serve la prima query se all'interno della seconda query non utilizzi nessun parametro?
    A parte questo, prova intanto a modificare il nome della seconda variabile $row, magari usando semplicemente $row2. Se hai ancora errori, riporta l'errore.
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  26. #26
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Torno a spiegare

    Il database è in mysql cosi formato

    Database struttura: 3 tabelle

    actor: <------Table
    actor_id
    photo
    name

    film: <------Table
    film_id
    movie_title
    year

    film_actor: <------Table
    actor_id
    film_id
    credited
    notes

    nella pagina film.php io visualizzo la scheda film e gli attori (non vedo la foto, ma questo lo risolveremo dopo)

    quello importante sono gli attori, la query mi restituisce il nome, credited e notes

    questo e' il codice


    film.php
    Codice PHP:
    <?php


    require_once("connetti.php");

    $film_id $_GET["id"];
    $query mysql_query ("SELECT * FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id JOIN film as f ON f.film_id = fa.film_id WHERE fa.film_id = {$film_id}");


    while(
    $row=mysql_fetch_array($query)){ 

    ?>

    <div class="castbox"><p><img class="headshot" src="<?php echo $row ['nome'?>"><br><?php echo "<a href=\"cinema.php?id=" $row['actor_id'] . "\">" $row['nome'] . "</a>";?></a><br><i><?php echo $row['credited'?></i><br><pre><?php echo $row['notes'?></pre><br>&nbsp;<br>&nbsp;<br></div>

    <?php
                    
    }
                
    ?> 

    <?php
    nella pagina cinema.php visualizzo la scheda attore (anche la foto) con tutti i dati e la lista dei suoi film, tramite DataTables (per il filtraggio e la ricerca istantanea)


    cinema.php <------------------query1

    Codice PHP:
    <?php             

    $con 
    mysqli_connect("localhost","root","","xxx"); 

     
    $id $_GET['id']; 
     
                    
    $id mysqli_real_escape_string($con,$id);  
                    
    $query mysqli_query($con"SELECT film.* FROM film  
    JOIN film_actor ON film_actor.film_id = film.film_id  
    WHERE film_actor.actor_id = " 
    intval($_GET['id']));
                    while(
    $row=mysqli_fetch_array($query)){
                        
    ?>
                                    
                
    <tr class="we">

    <td><?php echo "<a href=\"film.php?id=" $row['film_id'] . "\">" $row['movie_title'] . "</a>";?></td>

    <td><?php echo $row['year']; ?></td>
    <td><?php echo $row['distributor']; ?></td>
    <td><i><?php echo $row['notes'?></i></td>
    <td><?php echo $row['credited']; ?></td>

     <?php
                    
    }
                
    ?>
    dove sta il problema? non visualizzo credited e notes nella lista film,
    questa e' la tabella riproposta

    film_actor: <------Table
    actor_id
    film_id
    credited
    notes

    questa sembra funzionare ma la devo inserire il codice nella stessa query query1, se no i dati non vengono visualizzati in DataTables



    Codice PHP:
    $film_id $_GET["id"];
    $query mysql_query ("SELECT credited FROM film_actor Where actor_id = {$film_id}");


    while(
    $row=mysql_fetch_array($query)){ 
    Ultima modifica di Alex_2019; 08-07-19 alle 19:34

  27. #27
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Forse non mi sono spiegato.
    Tu hai due variabili row ricorsive. Quando assegni il primo while a row se utilizzi la stessa variabile row nel secondo while che ti ricordo essere nel primo, il primo row che generi lo distruggi e di conseguenza tronchi il ciclo while primario mandando in confusione tutto. E questo è il primo errore.
    Il secondo è che le due query, non parlano tra loro. Nonostante siano una dentro l'altra.
    Altro errore. Le JOIN non sono corrette, anche se ti funzionano, la sintassi è errata.
    Il tuo è un solo errore di logica, non di scrittura, perché il codice per quanto obsoleto in parte è corretto. Ma devi sistemare la logica, ottimizzare l'algoritmo di estrazione.
    Ti do una dritta. Le query, testale con un phpmyadmin. Quando funzionano, allora estrai i dati con PHP.
    Esegui sempre dei test, prima di scrivere del codice. (Debug)

  28. #28
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Ritorniamo al punto di partenza , lo scritto anche a Giorgio nel suo canale youtube, nel suo intervento di oggi,
    se io ero capace di fare quello che stai scrivendo allora non era necessario chiedere il vostro aiuto, purtroppo io e il php siamo ancora conoscenti, al 5%,
    sono un autodidatta e la mia passione e' imparare qulcosa, ma a volte trovo degli ostacoli che non riesco a superare,
    tra l'altro io svolgo un lavoro che e' il contrario del vostro, il mio e' manuale, e quello si lo faccio professionalmente.

  29. #29
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Nessuna risposta, nessun aiuto concreto, solo concetti virtuali, bisogna avere una laurea in informatica per poter dialogare, se sei un principiante sei perduto.
    Mi rassegno questo forum e' una vera delusione, come tutti gli altri in Italia.
    Cerchero' le mie risposte in altre fonti su canali esteri del mio paese.
    Ultima modifica di Alex_2019; 09-07-19 alle 09:23

  30. #30
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Ciao Alex, questo è un forum dove l'intento degli utenti è cercare di aiutare le persone a crescere in quello che stanno facendo. Io ti ho largamente detto come e cosa fare, ma evidentemente o non mi faccio capire o oppure cerchi di avere qualcosa di già bello che funzionante.
    La programmazione non funziona in questo modo. E no, non bisogna avere una laurea in informatica, ma bisogna studiare e comprendere a fondo le basi della programmazione.
    Te lo riscrivo, io ti ho dato errori e soluzioni, se poi non sei in grado di implementarli, allora siamo su un altro livello di conoscenza. E dire che questo forum è una delusione è una cavolata immensa, perchè questo thread che hai aperto ha già una miriade di risposte di utenti che hanno cercato di aiutarti, ma non puoi pretendere che le persone si fermino a prepararti la pappa.
    Io non so quanti anni hai, ma di certo hai bisogno di studiare le fondamenta della programmazione, iniziando dalle basi, non da codice rubato da internet per poter cercare di fare qualcosa di tuo, se poi non lo sai adattare.
    Mi spiace che la pensi in questo modo, ma ti dirò di più, se hai la pazienza di cercare all'interno del forum, troverai problemi analoghi ai tuoi. Fermo restando, che ti ho detto dov'è l'errore 3 volte.
    A presto.
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  31. #31
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    film.php
    Codice PHP:
    <?php
    /*
     * Come ti avevo già ampiamente scritto, la query è errata nel metodo e nella sintassi
     */

    require_once("connetti.php");

    $film_id $_GET["id"];
    //$query = mysql_query ("SELECT * FROM film_actor as fa JOIN actor as a ON a.actor_id = fa.actor_id JOIN film as f ON f.film_id = fa.film_id WHERE fa.film_id = {$film_id}");
    $query "SELECT 
    film_actor.actor_id as actor_id, 
    film_actor.film_id as film_id, 
    film_actor.credited as credited 
    film_actor.notes as notes, 
    actor.actor_id as actor_ID, 
    actor.photo as photo, 
    actor.name as name, 
    film.film_id as film_ID, 
    film.movie_title as movie_title, 
    film.year  as year 
    FROM film_actor INNER JOIN actor ON film_actor.actor_id = actor.actor_id INNER JOIN film ON film_actor.film_id = film.film_id WHERE film_actor.film_id = " 
    $film_id;

    $result mysql_query$query );


    while( 
    $row mysql_fetch_object$result ) ) : ?>

    <div class="castbox">
        <p><img class="headshot" src="<?php echo $row->photo?>"><br>
            <a href="cinema.php?actor_id=<?php echo $row->actor_ID?>"><?php echo $row->name?></a>
            </a><br>
            <i>
                <?php echo $row->credited?>
            </i><br><pre><?php echo $row->notes?></pre><br>&nbsp;<br>&nbsp;<br>
    </div>

    <?php endwhile; ?>
    cinema.php
    Codice PHP:
    <?php             
    /*
     * Questa invece è completamente errata. Come ti ho già scritto, utilizzi per ben due volte la stessa tipologia di variabile, andando a sovrascrivere la precedente, e te non fai altro che ripetere una sintassi errata presa dalla query dei film, a dimostrazione, di come ho scritto prima, che non stai minimamente applicando metodo, ma stai semplicemente appoggiando dati e porzioni di codice.
     * Oltretutto, sopra usi mysql, qui usi mysqli ( o una o l'altra)
     */
    require_once("connetti.php");

    $actor_id $_GET['actor_id']; 
    // funzione inutile. $id è un numero non una stringa
    //$id = mysqli_real_escape_string($con,$id); 
    // query completamente errata
    //$query = mysqli_query($con, "SELECT film.* FROM film  
    //JOIN film_actor ON film_actor.film_id = film.film_id  
    //WHERE film_actor.actor_id = " . intval($_GET['id']));
    $query "SELECT 
    film_actor.actor_id as actor_id, 
    film_actor.film_id as film_id, 
    film_actor.credited as credited 
    film_actor.notes as notes, 
    film.film_id as film_ID, 
    film.movie_title as movie_title, 
    film.year  as year 
    FROM film_actor INNER JOIN film ON film_actor.film_id = film.film_id WHERE film_actor.actor_id = " 
    $actor_id;

    $result mysql_query$query );

    while( 
    $row mysql_fetch_object$result ) ) : ?>                                
                
        <tr class="we">
            <td><a href="film.php?id=<?php echo $row->film_id?>"><?php echo $row->movie_title?></a>
            </td>

            <td><?php echo $row->year?>; ?></td>
            <?php // distributor adesso da dove salta fuori? ?>
            <!--<td><?php //echo $row['distributor']; ?></td>-->
            <td><i><?php echo $row->notes?></i></td>
            <td><?php echo $row->credited?></td>
        <?php // tr di chiusura mancante!!!!! ?>
        </tr>
    <?php endwhile; ?>
    Ultima modifica di Ultima; 09-07-19 alle 11:11
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  32. #32
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Ciao Ultima,

    la query non e' mia, io non sapevo da dove cominciare, me la fornito andreagotta, confidando che era giusta


    Io lavoro nelle costruzioni, costruisco e ristrutturo case, ho 51 anni e non penso che a questa eta' possa pensare di imparare programmazione,
    quello che so' lo imparato da solo o suggerito da altri, come ho detto, io il php non lo conosco ( conosco l'xml e xslt), e ' un paio di mesi che lo sto' studiando,

    la mia richiesta erano semplicemente delle query, cosa che non capisco fino in fondo, non voglio la "pappa pronta" come ormai leggo nel 99% dei forum (ma ormai e' moda),
    anche perche' io ho creato il database, le pagine ,il motore di ricerca interno, e il caricamento delle foto, ma semplicemente un aiuto.

    Io penso che i forum devono fornire conoscenza a chi e' ignorante della materia, non fornire dubbi, e come aprire un libro e trovarlo incompleto.

    Se chiedi a Giorgio Tave ti dira' da dove provengo, e dove abito adesso,

    spero che mi aiutere a risolvere i miei prossimi quesiti, che sono ormai pochi

    grazie per l'aiuto

  33. #33
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Incredibile, ancora errore

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in W:\domains\localhost\Cinema_2019\film.php on line 180

    film.php <-------------- line 180

    Codice PHP:
    while( $row mysql_fetch_object$result ) ) : ?> 
    cinema.php <-------------- line 418

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in W:\domains\localhost\Cinema_2019\cinema.php on line 418

    Codice PHP:
    while( $row mysql_fetch_object$result ) ) : ?> 



    Ultima modifica di Alex_2019; 09-07-19 alle 16:04

  34. #34
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Aggiungi questa, prima del ciclo while
    Codice PHP:
    if (!$result)
     die(
    "mySQL error: "mysql_error()); 
    Adesso riesegui il processo e vediamo che errore esce.

    PS.
    Concettualmente qualcuno adesso (me) sta facendo il tuo lavoro, anche se questo è un tuo divertimento. Ecco, questo è ciò che il Forum non deve fare.
    Te lo scrivo in maniera chiara, perchè la tua lamentela mi ha particolarmente colpito.
    "Il Forum è un luogo dove ci si scambia conoscenza, non un luogo dove si cerca un lavoro svolto a gratis". E' una alinea sottile che forse, non hai appreso, dimostrato da da quello che leggo e quello che scrivi e lamentandoti nonostante "io" ed altri, ti stiamo dando una mano. Poi, puoi avere anche 100 anni, il discorso non cambia.
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  35. #35
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Ultima non sei obbligato ad aiutarmi, io non obbligo nessuno, se tu non sei disponibile lasciamo perdere,
    al mio paese si aiuta senza rinfacciare,
    tu dici che il forum e' un luogo dove si scambia conoscenza, ma io questa conoscenza non c'e lo,
    per te e' facile, tu conosci il codice e ci metti poco, io da ignorante in materia forse un mese, un anno o mai,
    se io ti dico, vammi a costruire una casa, tu lo sai fare? ne dubito, quindi chiedi consiglio a me e io ti spiego come fare e che materiali usare,
    lo stesso e' il codice.

    va beh..comunque l'errore e' questo

    Codice PHP:
    mySQL errorYou have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'film_actor.notes as notes, actor.actor_id as actor_ID, actor.photo as photo,' at line 5 

  36. #36
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Citazione Originariamente Scritto da Alex_2019 Visualizza Messaggio
    Ultima non sei obbligato ad aiutarmi, io non obbligo nessuno, se tu non sei disponibile lasciamo perdere,
    al mio paese si aiuta senza rinfacciare,
    tu dici che il forum e' un luogo dove si scambia conoscenza, ma io questa conoscenza non c'e lo,
    per te e' facile, tu conosci il codice e ci metti poco, io da ignorante in materia forse un mese, un anno o mai,
    se io ti dico, vammi a costruire una casa, tu lo sai fare? ne dubito, quindi chiedi consiglio a me e io ti spiego come fare e che materiali usare,
    lo stesso e' il codice.

    va beh..comunque l'errore e' questo

    Codice PHP:
    mySQL errorYou have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'film_actor.notes as notes, actor.actor_id as actor_ID, actor.photo as photo,' at line 5 
    Bene perfetto, ti sei risposto da solo. Allora io ti ho dato tutte le informazioni del caso per capire l'errore. Quindi evito di costruirti la casa no? I prodotti da utilizzare e come, mi pare di averteli spiegati no?
    Nota bene. Io non ti sto rinfacciando proprio nulla, sto solamente prendendo le difese di questo bellissimo Forum, cosa che dal tuo personale punto di vista non è, solo perchè "non è il tuo mestiere"
    Sai, cosa? Ci sono libri, ci sono testi, ci sono video e c'è stackoverflow.
    Have a nice day!
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  37. #37
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Caro Stefano con il tuo atteggiamento di adesso stai dimostrando che questo forum e' uguale a tutti gli altri, non c'e' dialogo costruttivo e solo la presunzione e l'arroganza di essere piu' intelligenti degli altri solo perche' si conosce un poco di codice, ma il mondo gira su altre cose, in primis il rispetto e l'altruismo, valori che si sono persi ormai,
    sicuramente sarai piu' giovane di me, quando arriverai all mia eta' comincerai a riflettere.
    Ultima modifica di Alex_2019; 09-07-19 alle 17:51

  38. #38
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Risolto ,
    anche se ci sono stati dei disguidi ringrazio Ultima per il suo prezioso aiuto

  39. #39
    L'avatar di Giorgiotave
    Data Registrazione
    Oct 2004
    Località
    Monasterace
    Messaggi
    42,798
    Visita il canale Youtube di Giorgiotave
    Mai mettere davanti la risoluzione del proprio problema rispetto alla percezione di una community.

    Stefano (@ultima) è una delle persone più disponibili qui che ha aiutato molte persone. E le aiuta a crescere.

    Che per noi è la cosa più imporante.

    Perché i pesci possono sicuramente sfamare, ma insegnare ad usare la canna da pesca è un altro livello

    SMConnect 2019: l'evento per i professionisti del Digital Marketing arriva nella sua edizione più avanzata di sempre!

  40. #40
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Non mangio pesce e nemmeno carne , sono vegetariano.
    Ciao Giorgio

  41. #41
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    c'e' un problema, in cinema.php riesco a visualizzare la foto dell'attore con questa query

    Codice PHP:
    require_once("connetti.php"); 

    $actor_id $_GET["id"];
    $sql="select foto from actor where actor_id=".$_GET['id']; 
    $result=mysql_query($sql); $riga=mysql_fetch_row($result); 
    $filename=basename($riga[0]);        


    echo 
    "<img src='image_upload/uploads/"


    .$filename."'><br>".$filename;

    ?> 
    in film.php niente, nonostante ho messo il codice postato da Ultima

    le foto sono posizionati nella cartella image_upload/uploads e nel database nellatabella actor e campo foto
    varchar(100)

    soluzione?


  42. #42
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Risolto il mistero

    penso che questo thread si possa bollare [SOLVED]
    Ultima modifica di Alex_2019; 11-07-19 alle 20:19

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.