Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2017
    Messaggi
    3

    Passaggio di variabile href

    Ciao a tutti. Sono nuovo, sia nel forum che per quel che riguarda codici PHP.
    Ho un grosso problema piuttosto urgente.
    Ora vi pubblico i codici di due pagine, nella prima pagina (risultato di un formulario) vengono stampati dei dati in una tabella, ciò che voglio fare é rendere cliccabile il titolo (risultato di $row["titre"]) e far si che si apra una nuova pagina (pagina 2) dove verrà riportato solo quel titolo dove io possa riprenderlo (penso come variabile) per poterlo inserire in una nuova query e stampare solo i dati relativi a quel titolo... ecco a voi i codici (solo la parte che può interessare):

    PAGINA 1
    $query = "SELECT titre, nom_multiplex, date, horaire, nb_salle, nom_region, genre
    FROM Film, Multiplex, Seance, Region, Genre, a_un_genre
    WHERE a_un_genre.genreID=Genre.genreID
    AND a_un_genre.filmID=Film.filmID
    AND Seance.filmID=Film.filmID
    AND Seance.multiplexID=Multiplex.multiplexID
    AND Multiplex.regionID=Region.regionID
    $region $genre
    AND titre LIKE '%$search%' GROUP BY Seance.seanceID ORDER BY Seance.date";


    $result = mysqli_query($mysqli, $query) or die('Errore query') ;



    echo "<table align=center>";
    echo "<thead>";
    echo "<tr>";
    echo "<th><h3>Titre</h3></th>";
    echo "<th><h3>FILMID</h3></th>";
    echo "<th><h3>Multiplex</h3></th>";
    echo "<th><h3>Date</h3></th>";
    echo "<th><h3>Horaire</h3></th>";
    echo "<th><h3>Salle</h3></th>";
    echo "<th><h3>Région</h3></th>";
    echo "</tr>";
    echo "</thead>";


    while ($row = mysqli_fetch_assoc($result)) {
    echo "<tr align=center>";
    echo "<th><h4><a href=\"film_detail.php?\">{$row["titre"]}</a></h4></th>";
    echo "<th><h4><a href=\"multiplex_detail.php\">{$row["nom_multiplex"]}</a></h4></th>";
    echo "<th><h4>{$row["date"]}</h4></th>";
    echo "<th><h4>{$row["horaire"]}</h4></th>";
    echo "<th><h4>{$row["nb_salle"]}</h4></th>";
    echo "<th><h4>{$row["nom_region"]}</h4></th>";
    echo "</tr>";
    }
    echo "</table>";


    ?>

    PAGINA 2 (film_detail.php)

    $query = "SELECT filmID, titre, genre, age_legal, duree, 3D, nom_realisateur, bande_annonce
    FROM Film, Genre, a_un_genre, Realisateur, realise
    WHERE a_un_genre.genreID=Genre.genreID
    AND a_un_genre.filmID=Film.filmID
    AND realise.filmID=Film.filmID
    AND realise.realisateurID=Realisateur.realisateurID
    AND ";


    //eseguo la query
    $result = mysqli_query($mysqli, $query) or die('Errore query') ;
    //stampo i risultati a schermo, dentro a una tabella


    echo "<table align=center>";
    echo "<thead>";
    echo "<tr>";
    echo "<th><h3>Titre</h3></th>";
    echo "<th><h3>Genre</h3></th>";
    echo "<th><h3>Âge légal</h3></th>";
    echo "<th><h3>Durée</h3></th>";
    echo "<th><h3>3D</h3></th>";
    echo "<th><h3>Réalisateur</h3></th>";
    echo "<th><h3>Trailer</h3></th>";
    echo "</tr>";
    echo "</thead>";
    while ($row = mysqli_fetch_assoc($result)) {
    echo "<tr align=center>";
    echo "<th><h4>{$row["titre"]}</h4></th>";
    echo "<th><h4>{$row["genre"]}</h4></th>";
    echo "<th><h4>{$row["age_legal"]}</h4></th>";
    echo "<th><h4>{$row["duree"]}</h4></th>";
    echo "<th><h4>{$row["3D"]}</h4></th>";
    echo "<th><h4>{$row["nom_realisateur"]}</h4></th>";
    echo "<th><h4><a href=\"{$row["bande_annonce"]}\">voir bande d'annonce</a></h4></th>";
    echo "</tr>";
    }
    echo "</table>";


    ?>


    Ho sottolineato il problema nella prima pagina... cosa devo aggiungere, che variabile devo riportare e cosa devo mettere nella query perché mi funzioni
    Grazie !!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Qui
    <a href=\"film_detail.php?\">

    modifica in
    <a href=\"film_detail.php?titre={$row["titre"]}\">

    In pagina2.php lo recuperi con $_GET['titre']

    In questo modo puoi avere qualche problema in caso di caratteri speciali o spazi, se hai un id numerico associato ai film, ti conviene passare quello e recuperare solo il film che ti interessa in pagina2.php usando tale id.

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Scusate l'intromissione ma le graffe ?titre={$row["titre"]}\"> si usano per far leggere la variabile a echo ?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    In teoria non servono, ma visto che si tratta di un elemento di un array gli apici darebbero fastidio alla stringa, questo ti risparmia l'escape.

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Grazie.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2017
    Messaggi
    3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Qui
    <a href=\"film_detail.php?\">

    modifica in
    <a href=\"film_detail.php?titre={$row["titre"]}\">

    In pagina2.php lo recuperi con $_GET['titre']

    In questo modo puoi avere qualche problema in caso di caratteri speciali o spazi, se hai un id numerico associato ai film, ti conviene passare quello e recuperare solo il film che ti interessa in pagina2.php usando tale id.

    GRAZIE per la pronta risposta, ho provato a modificare come dici tu ma nella seconda pagina non mi stampa nulla, ecco le mie modifiche:

    PAGINA 1:

    $query = "SELECT titre, nom_multiplex, date, horaire, nb_salle, nom_region, genre
    FROM Film, Multiplex, Seance, Region, Genre, a_un_genre
    WHERE a_un_genre.genreID=Genre.genreID
    AND a_un_genre.filmID=Film.filmID
    AND Seance.filmID=Film.filmID
    AND Seance.multiplexID=Multiplex.multiplexID
    AND Multiplex.regionID=Region.regionID
    $region $genre
    AND titre LIKE '%$search%'
    GROUP BY Seance.seanceID
    ORDER BY Seance.date";


    //eseguo la query
    $result = mysqli_query($mysqli, $query) or die('Errore query') ;
    //stampo i risultati a schermo, dentro a una tabella


    echo "<table align=center>";
    echo "<thead>";
    echo "<tr>";
    echo "<th><h3>Titre</h3></th>";
    echo "<th><h3>Multiplex</h3></th>";
    echo "<th><h3>Date</h3></th>";
    echo "<th><h3>Horaire</h3></th>";
    echo "<th><h3>Salle</h3></th>";
    echo "<th><h3>Région</h3></th>";
    echo "</tr>";
    echo "</thead>";


    while ($row = mysqli_fetch_assoc($result)) {
    echo "<tr align=center>";
    echo "<th><h4><a href=\"film_detail.php?titre={$row["filmID"]}\">{$row["titre"]}</a></h4></th>";
    echo "<th><h4><a href=\"multiplex_detail.php\">{$row["nom_multiplex"]}</a></h4></th>";
    echo "<th><h4>{$row["date"]}</h4></th>";
    echo "<th><h4>{$row["horaire"]}</h4></th>";
    echo "<th><h4>{$row["nb_salle"]}</h4></th>";
    echo "<th><h4>{$row["nom_region"]}</h4></th>";
    echo "</tr>";
    }
    echo "</table>";


    ?>

    PAGINA 2:

    $titre = $_GET['filmID']

    $mysqli = new mysqli("$host", "$user", "$password", "$db");

    $query = "SELECT titre, genre, age_legal, duree, 3D, nom_realisateur, bande_annonce
    FROM Film, Genre, a_un_genre, Realisateur, realise
    WHERE a_un_genre.genreID=Genre.genreID
    AND a_un_genre.filmID=Film.filmID
    AND realise.filmID=Film.filmID
    AND realise.realisateurID=Realisateur.realisateurID
    AND Film.filmID = "$titre" ";



    $result = mysqli_query($mysqli, $query) or die('Errore query') ;



    echo "<table align=center>";
    echo "<thead>";
    echo "<tr>";
    echo "<th><h3>Titre</h3></th>";
    echo "<th><h3>Genre</h3></th>";
    echo "<th><h3>Âge légal</h3></th>";
    echo "<th><h3>Durée</h3></th>";
    echo "<th><h3>3D</h3></th>";
    echo "<th><h3>Réalisateur</h3></th>";
    echo "<th><h3>Trailer</h3></th>";
    echo "</tr>";
    echo "</thead>";
    while ($row = mysqli_fetch_assoc($result)) {
    echo "<tr align=center>";
    echo "<th><h4>{$row["titre"]}</h4></th>";
    echo "<th><h4>{$row["genre"]}</h4></th>";
    echo "<th><h4>{$row["age_legal"]}</h4></th>";
    echo "<th><h4>{$row["duree"]}</h4></th>";
    echo "<th><h4>{$row["3D"]}</h4></th>";
    echo "<th><h4>{$row["nom_realisateur"]}</h4></th>";
    echo "<th><h4><a href=\"{$row["bande_annonce"]}\">voir bande d'annonce</a></h4></th>";
    echo "</tr>";
    }
    echo "</table>";


    ?>

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    <a href=\"film_detail.php?titre={$row["filmID"]}\">

    Il parametro si chiama titre, non filmID, filmID è il valore della chiave dell'array, quindi in pagina2.php
    $titre = $_GET['titre']

    ma più coerentemente:
    in pagina1.php
    <a href=\"film_detail.php?id={$row["filmID"]}\">

    in pagina2.php
    $id = $_GET['id']

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2017
    Messaggi
    3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    <a href=\"film_detail.php?titre={$row["filmID"]}\">

    Il parametro si chiama titre, non filmID, filmID è il valore della chiave dell'array, quindi in pagina2.php
    $titre = $_GET['titre']

    ma più coerentemente:
    in pagina1.php
    <a href=\"film_detail.php?id={$row["filmID"]}\">

    in pagina2.php
    $id = $_GET['id']

    Ho fatto tutte le modifiche da te consigliate (modifiche che già avevo provato a portare), ma ancora non mi esce la pagina, la query in se dovrebbe essere giusta, ma non mi da nulla, quando cerco di caricare la pagina rimane tutta bianca (non mi da nemmeno la parte di tabelle)... non so più che fare ho sbagliato qualcosa nel codice ? magari il while
    Help

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2017
    Messaggi
    3
    (é la seconda volta che scrivo una risposta, non capisco perché non riesco a pubblicarla)
    Comunque grazie mille!! alla fine era tutto giusto ciò che mi hai detto... ero io che ho dimenticato virgolette e ";"
    GRAZIE!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.