Envoyer un id d'une page à l'autre en php via du html

Axelle
Invité n'ayant pas de compte PHPfrance

09 janv. 2021, 11:04

Bonjour,
Je vous poste ce dernier message désespérément. J'ai commencé les cours de php cette année, j'ai eu 16h ou on a appris à découper, coller des phrases et on nous demande gentiment de créer un projet ou on doit lier une base de données phpmyadmin dans du php.

L'idée est que nous devons faire un 'Netflix' : nous avons une page avec nos séries, lorsqu'on clique sur les épisodes d'une série on arrive sur ses saisons, et lorsqu'on clique sur les épisodes de la saison X on arrive sur ses épisodes.
J'ai réussi (partiellement) à faire ça mais j'ai un gros soucis que je n'arrive pas à résoudre malgré mes nombreuses heures à chercher. Et malheureusement je ne comprend pas plusieurs forum sur internet.

J'envoie de ma page série à ma page saison un id série avec un :

Code : Tout sélectionner

$script = $script.'<td style="border:solid 1px black; text-align:center"><a href ="saison.php?idserie='.$SQLRow->id.'" title="Voir les saisons">Saisons</a></td>';
qu'on nous a fait mettre après un while :
<?php
 $SQLQuery = 'SELECT id, titre, anneediffusion FROM serie ORDER BY titre';
 $SQLResult = $dbConn->query($SQLQuery);
$script = '';
while($SQLRow = $SQLResult->fetchObject()){
$script = $script.'<tr>';
$script = $script.'<td style="border:solid 1px black">'.$SQLRow->titre.'</td>';
$script = $script.'<td style="border:solid 1px black; text-align:center">'.$SQLRow->anneediffusion.'</td>';
 $script = $script.'<td style="border:solid 1px black; text-align:center"><a href ="saison.php?idserie='.$SQLRow->id.'" title="Voir les saisons">Saisons</a></td>';
 $script = $script.'<td style="border:solid 1px black; text-align:center"><a href ="ficheserie.php?idserie='.$SQLRow->id.'" title="Modifier la série">Modifier</a></td>';
$script = $script.'<td style="border:solid 1px black; text-align:center"> <a href ="suppr_serie.php?idserie='.$SQLRow->id.'" title="Supprimer la série">Supprimer</a></td>';
 $script = $script.'</tr>';
}
print($script);
$SQLResult->closeCursor();
 ?>
Sur ma page saison j'ai essayé de faire ça (pour envoyer sur la page épisodes et ça fonctionne :
$script = $script.'<td style="border:solid 1px black; text-align:center"><a href ="episode.php?idserie='.$idserie.'&idsaison='.$SQLRow->id.'" title="Voir les épisodes">Épisodes</a></td>';
Et je fais un $idserie=$_GET['idserie']; dans chaque page pour récupérer les données + $idsaison=$_GET['idsaison]; dans ma page épisodes.

Dans ce sens pas de soucis, mais j'ai ajouté un bouton "retour" pour pouvoir revenir dans la page saison de la page épisodes par exemple et la je ne parviens pas à renvoyer les données.
J'ai tenté avec ça :

Code : Tout sélectionner

<a href ="saison.php?idserie=<?php echo $GET_['idserie'];?>&idsaison=<?php echo $GET_['idsaison'];?>" Ajouter </a>
Mais ça ne fonctionne pas.
"Notice: Undefined variable: idsaison in C:\MAMP\htdocs\myNetflix\episode.php on line 45" et plus idsaison dans mon url.
Je ne sais vraiment pas quoi faire... Je sais que c'est surement compliqué de comprendre mon code (parceque je l'ai fait comme quelqu'un qui ne sait pas coder), mais si vous avez une idée...

Pour info :
episode.php : page des épisodes
ficheepisode.php : modification et ajout des épisodes

Mammouth du PHP | 2703 Messages

09 janv. 2021, 14:35

"Et je fais un $idserie=$_GET['idserie'];"
cela marche, vous nous dites.

"<?php echo $GET_['idserie'];?>"
cela ne marche pas, vous nous dites.

Axelle
Invité n'ayant pas de compte PHPfrance

09 janv. 2021, 15:09

En fait j'envoie ma donnée par le lien "Modifier" en php sur ma page saison vers ma page épisode avec :
<a href ="ficheserie.php?idserie='.$SQLRow->id.'" title="Modifier la série">Modifier</a></td>';
et je parviens à récupérer dans la page épisode la donnée.

Mais quand j'essaye de la renvoyer par un bouton "Ajouter" dans du html je n'arrive pas à écrire la phrase pour la renvoyer. J'ai essayé ça mais sans succès.
<a href ="saison.php?idserie=<?php echo $GET_['idserie'];?>&idsaison=<?php echo $GET_['idsaison']";?>> Ajouter </a>

Voici mon code, c'est peut être plus explicite :
<!DOCTYPE html>
<?php
    include_once('includes/scripts/connection.php');
?>
<html lang='fr'>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <title>La liste des mes saisons</title>
</head>
<body>
    <section id='wrapper'>
        <nav>
            <ul>
                <li><a href="index.php" title="Page d accueil">Accueil</a></li>
                <li><a href="ficheserie.php" title="Fiche serie">Nouvelle série</a></li>
            </ul>
        </nav>
        <header><h2> Saisons <h2></header>
        <section>
        <table style="border : solid 1px black; border-collapse: collapse">
                <tr>
                    <th style="width:50px; border:solid 1px black">Numéro</th>
                    <th style="width:100px; border:solid 1px black">Titre</th>
                    <th style="width:200px; border:solid 1px black">Résumé</th><!---->
                    <th style="width:100px; border:solid 1px black">Année de parution</th>
                    <th style="width:50px; border:solid 1px black">Déjà vu ?</th>
                    <th style="width:100px; border:solid 1px black">Épisodes</th>
                    <th style="width:300px; border:solid 1px black" colspan="2">Actions</th>
                </tr>

            <?php
            if (empty($_GET)){
                $idserie=$_GET['idserie'];
                $SQLQuery = 'SELECT id, numero, titre, resumer, anneeparution, dejavu FROM saison ORDER BY numero';
                $SQLResult = $dbConn->query($SQLQuery);
                $script = '';
                while($SQLRow = $SQLResult->fetchObject()){
                    $script = $script.'<tr>';
                    $script = $script.'<td style="border:solid 1px black">'.$SQLRow->numero.'</td>';
                    $script = $script.'<td style="border:solid 1px black">'.$SQLRow->titre.'</td>';
                    $script = $script.'<td style="border:solid 1px black">'.$SQLRow->resumer.'</td>';
                    $script = $script.'<td style="border:solid 1px black">'.$SQLRow->anneeparution.'</td>';
                    $script = $script.'<td style="border:solid 1px black">'.$SQLRow->dejavu.'</td>';
                    $script = $script.'<td style="border:solid 1px black; text-align:center">
                    <a href ="episode.php?idsaison='.$SQLRow->id.'" title="Voir les épisodes">Épisodes</a></td>';
                    $script = $script.'<td style="border:solid 1px black; text-align:center">
                    <a href ="fichesaison.php?idsaison='.$SQLRow->id.'" title="Modifier la saison">Modifier</a></td>';
                    $script = $script.'<td style="border:solid 1px black; text-align:center">
                    <a href ="supprsaison.php?idsaison='.$SQLRow->id.'" title="Supprimer la série">Supprimer</a></td>';
                        $script = $script.'</tr>';  
                    }
                print($script);
                $SQLResult->closeCursor();
            }else{
                $idserie=$_GET['idserie']; //je recupere l'id de la serie pour n'avoir que les saisons de cette serie
                $SQLQuery = 'SELECT id, numero, titre, resumer, anneeparution, dejavu FROM saison WHERE idserie='.$idserie.' ORDER BY numero';  //je recupere les infos de la bdd
                //print("Episodes dont l'id vaut $id");
                $SQLResult = $dbConn->query($SQLQuery);
                $script = '';
                while($SQLRow = $SQLResult->fetchObject()){
                    $script = $script.'<tr>';
                        $script = $script.'<td style="border:solid 1px black">'.$SQLRow->numero.'</td>';
                        $script = $script.'<td style="border:solid 1px black">'.$SQLRow->titre.'</td>';
                        $script = $script.'<td style="border:solid 1px black">'.$SQLRow->resumer.'</td>';
                        $script = $script.'<td style="border:solid 1px black">'.$SQLRow->anneeparution.'</td>';
                        $script = $script.'<td style="border:solid 1px black">'.$SQLRow->dejavu.'</td>';
                        $script = $script.'<td style="border:solid 1px black; text-align:center">
                        <a href ="episode.php?idserie='.$idserie.'&idsaison='.$SQLRow->id.'" title="Voir les épisodes">Épisodes</a></td>';
                        $script = $script.'<td style="border:solid 1px black; text-align:center">
                        <a href ="fichesaison.php?idserie='.$idserie.'&idsaison='.$SQLRow->id.'" title="Modifier la saison">Modifier</a></td>';
                        $script = $script.'<td style="border:solid 1px black; text-align:center">
                        <a href ="suppr_saison.php?idsaison='.$SQLRow->id.'" title="Supprimer la série">Supprimer</a></td>';
                        //$message='Voulez-vous vraiment supprimer ?';
                        //echo '<script type="text/javascript">window.alert("'.$message.'");</script>';
                    $script = $script.'</tr>';    
                }
                print($script);
                $SQLResult->closeCursor();
            }
            ?>
            </table>
            <div>
            <!--<table style="border : solid 1px black; border-collapse: collapse">
                <tr>
                    <th style="width:300px; border:solid 0px" colspan="2"></th>
                </tr>
            </table>-->

                <a href ="index.php">Retour</a>
                <a href ="saison.php?idserie=<?php echo $GET_['idserie'];?>&idsaison=<?php echo $GET_['idsaison'];?>"> Ajouter </a>
            </div>
        </section>
    </section>
</body>
</html>
Quand je clique sur mon bouton "modifier" j'ai bien mon id serie et id saison qui s'affiche dans mon url mais pas lorsque je clique sur mon bouton "ajouter" à la fin de ma page !

Mammouth du PHP | 2703 Messages

09 janv. 2021, 15:12

relisez mon message, caractère par caractère.

Axelle
Invité n'ayant pas de compte PHPfrance

09 janv. 2021, 16:01

Effectivement pardon ! c'est bien $_GET['idsaison']. Je me suis trompée, désolée c'est encore un langage difficile au début.

Axelle
Invité n'ayant pas de compte PHPfrance

09 janv. 2021, 16:04

ça ne change absolument rien. Je pense que j'ai une erreur dans la façon dont j'ai écrit la phrase peut etre ...

Mammouth du PHP | 2703 Messages

09 janv. 2021, 16:12

s'il n'y a plus :
"Notice: Undefined variable: idsaison in C:\MAMP\htdocs\myNetflix\episode.php on line 45"
c'est que quelque chose à changer.

Axelle
Invité n'ayant pas de compte PHPfrance

09 janv. 2021, 20:05

Si toujours malheureusement ! J'ai essayé de bidouiller mais mais niveau n'est vraiment pas assez bon ! Tant pis je serais notée en conséquence ^^ mais merci quand même !

Mammouth du PHP | 2703 Messages

09 janv. 2021, 20:46

quelle est l'url de la page saison.php quand cela fonctionne ? quand cela ne fonctionne pas ?
quelle est l'url de la page qui fait un lien vers saison.php qui ne fonctionne pas ? quel est le code html du lien de cette page, généré par php ?

Axelle
Invité n'ayant pas de compte PHPfrance

09 janv. 2021, 21:01

Je suis sur ma page Saison
http://localhost/myNetflix/saison.php?idserie=5

L'url de ma page saison quand je clique sur modifier :)
http://localhost/myNetflix/fichesaison. ... idsaison=7

Je n'ai pas d'url de ma page saison quand je veux ajouter puisque le bouton ne fonctionne pas (d'où le fait que je pense que j'écris mal ma demande) !
<a href ="fichesaison.php?idserie=<?php echo $_GET['idserie'];?>&idsaison=<?php echo $_GET['idsaison'];?>"> Ajouter </a>

si je fais un lien simple (sans php) j'ai :
http://localhost/myNetflix/fichesaison.php

Est-ce que j'ai bien répondu à tout ?

Mammouth du PHP | 2703 Messages

09 janv. 2021, 21:05

quel est le résultat de ce code ?
<a href ="fichesaison.php?idserie=<?php echo $_GET['idserie'];?>&idsaison=<?php echo $_GET['idsaison'];?>"> Ajouter </a>
ctrl + u pour voir la source d'une page html et donc le résultat du php.

Axelle
Invité n'ayant pas de compte PHPfrance

09 janv. 2021, 21:12

Oh merci pour l'info !! je ne connaissais pas le ctr+u !!

Cela m'affiche ça :
<a href ="fichesaison.php?idserie=5&idsaison=<br />
<b>Notice</b>: Undefined index: idsaison in <b>C:\MAMP\htdocs\myNetflix\saison.php</b> on line <b>92</b><br />
"> Ajouter </a>

Donc si je commence à comprendre c'est le idsaison qu'il ne trouve pas et il faut que je reprécise un idsaison c'est ça ?
Par contre ? (question surement conne) mais je lui donne comment ? En faisant comme dans le while ? idsaison='.id.' juste id ?

Mammouth du PHP | 2703 Messages

09 janv. 2021, 21:21

il faudrait faire les choses proprement, ne pas tous mettre dans un fichier quand il faudrait 2 fichiers.
il faut un script php qui affiche toutes les séries, un script qui affiche le détail d'une série, un script php qui affiche le détail d'une saison, un script php qui affiche le détail d'un épisode, le tout avec des noms de fichiers parlants.
cela évitera de mettre un lien ajouter après un if else, qui n'a pas de sens pour une page qui a trop d'usages.

Axelle
Invité n'ayant pas de compte PHPfrance

09 janv. 2021, 21:30

Merci pour votre retour, j'ai bien une page de détails pour mes séries, une pour mes saisons, et une pour mes épisodes, mais effectivement je n'ai qu'une seule page qui modifie ou ajoute une série, une seule pour modifier et ajouter une saison, et une pour m et a les épisodes (6 pages en tout).
J'ai suivi la démarche du prof (de façon scolaire) et n'ai pas pensé aux possibles problèmes que cela entrainerai (par manque de connaissances) mais je prend vos retours, j'y penserais pour la prochaine fois, merci beaucoup !