Insérer lien dans script PHP renvoyant vers page specifique

Résolu/Fermé
ChrisL18 Messages postés 6 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 30 avril 2014 - Modifié par ChrisL18 le 30/04/2014 à 09:07
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 - 30 avril 2014 à 16:14
Bonjour,

Je n'ai pas un profil technique et j'ai un devoir à rendre pour l'école qui porte sur le PHP et la manipulation de Bases SQL.
Je suis coincé sur une étape.
J'ai une table de ma BDD qui fait apparaître les noms, prénoms et année de naissance d'acteurs sous forme de tableau.
Je dois rendre cliquable le nom et que celui-ci m'amène sur une page detail_artiste.php qui fait apparaître des infos plus précises et qui doit être spécifique à chaque nom. Chaque artiste dispose d'un numéro ID unique qui est aussi la clé primaire.
Mon problème est donc que lorsque l'on clique sur le nom on soit envoyé à la page correspondant à l'ID rattaché au nom.

Quelqu'un pourrait m'aider svp ?


<?php
  $fenetre_sur_resultats = mysql_query("SELECT nom, prenom, anneeNaiss FROM Artiste")
  or die ("pb dans la requête :".mysql_error());
  $ligne_courante = mysql_fetch_object($fenetre_sur_resultats);

  while ($ligne_courante) {
   echo "<tr><td><a href=\"http://localhost/film/detail_artiste.php\"> ".utf8_encode( $ligne_courante->nom )."</a></td>
         <td>".utf8_encode ($ligne_courante->prenom)."</td>
         <td>".utf8_encode($ligne_courante->anneeNaiss)."</td>
   
         </tr>"; 
   $ligne_courante = mysql_fetch_object($fenetre_sur_resultats);
  };    
 ?>
A voir également:

9 réponses

Utilisateur anonyme
30 avril 2014 à 10:05
salut,

je vais seulement te donner la piste pour que tu taff ^^

La première chose à savoir c'est qu'il y a deux moyens de faire transiter les infos entre deux page : via le get et le post. Je te parlerai du get, libre à toi de cherche le post.

Par le get, on donne de manière claire les informations via l'url. Par exemple je veux donner "variable = 5" à la page "test.php". Je vais donc appeler :

test.php?variable=5

si je veux ajouter la variable "nom='test'" :

test.php?variable=5&nom='test'


Voulà pour l'envoi. C'est bien beau mais il faut réceptionner maintenant. test.php devra donc lire les infos. Les variables get sont accessible via le tableau
$_GET
. Donc pour nos deux variables :


$_GET['variable']; //5
$_GET['nom'];//test



voilà, si t'as besoin n'hésite pas.

naga
2
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
30 avril 2014 à 10:07
Bonjour,

tu y es presque.
Ajoute un paramètre à ton lien à la ligne 7 :
"<a href=\"http://localhost/film/detail_artiste.php?id=" . $ligne_courante->id . "\">" . utf8_encode( $ligne_courante->nom ) . "</a>"

Par contre, il faut modifier ta requête sql pour récupérer l'id de la ligne :
SELECT id, nom, prenom, anneeNaiss FROM Artiste

A toi de remplacer
id
par la clé primaire de ta table.
Et puis dans ton script detail_artiste.php, il te faut paramétrer ta requête permettant de récupérer les détails à l'aide de
$_GET['id']
, exemple :
$detailQuery = "SELECT * FROM DetailArtiste WHERE id='" . $_GET['id'] . "'";

1
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
30 avril 2014 à 15:57
Bonjour,

sur la ligne 7 du script artiste2.php, supprime le domaine de l'attribut href :
echo "<tr><td><a href=\"detail_artiste.php?id=" . $ligne_courante->id ."\">" . utf8_encode( $ligne_courante->nom ) . "</a></td>"

ça devrait mieux marcher.
1
ChrisL18 Messages postés 6 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 30 avril 2014
30 avril 2014 à 10:21
Ok, merci de vos réponses, je vais essayer un peu tout ça !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ChrisL18 Messages postés 6 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 30 avril 2014
Modifié par ChrisL18 le 30/04/2014 à 11:00
Bon, je suis un peu bloqué, j'ai essayé plusieurs trucs mais je ne parviens pas à faire apparaître les informations correspondant au id . Cet id et les éléments que je souhaite faire apparaître (photo, nom, etc...) sont dans le même table Artiste.

J'ai modifié le code de artiste2.php qui doit renvoyer vers detail_artiste.php. Ca donne ça:

<?php
  $fenetre_sur_resultats = mysql_query("SELECT id, nom, prenom, anneeNaiss FROM Artiste")
  or die ("pb dans la requête :".mysql_error());
  $ligne_courante = mysql_fetch_object($fenetre_sur_resultats);

  while ($ligne_courante) {
   echo "<tr><td><a href=\"http://localhost/film/detail_artiste.php?id="  . $ligne_courante->id ."\"> ".utf8_encode( $ligne_courante->nom )."</a></td>
         <td>".utf8_encode ($ligne_courante->prenom)."</td>
         <td>".utf8_encode($ligne_courante->anneeNaiss)."</td>
   
         </tr>"; 
   $ligne_courante = mysql_fetch_object($fenetre_sur_resultats);
  };    
 ?>
       </tbody>


et pour detail_artiste.php j'ai ça:

<?php
 

   $fenetre_sur_resultats = mysql_query("SELECT nom, prenom, photo, anneeNaiss FROM Artiste WHERE id='" . $_GET['id'] . "'")

  or die ("pb dans la requête :".mysql_error());
  $ligne_courante = mysql_fetch_object($fenetre_sur_resultats);

  

  while ($ligne_courante) {
   echo "<tr><td> ".utf8_encode ($ligne_courante->photo)."</td>
      <td>".utf8_encode ($ligne_courante->nom)."</td>
         <td>".utf8_encode($ligne_courante->prenom)."</td>
         <td>".utf8_encode($ligne_courante->anneeNaiss)."</td>
         </tr>"; 
   $ligne_courante = mysql_fetch_object($fenetre_sur_resultats);
  };    
 ?>


Que dois-je faire pour que lorsque l'on clique sur le nom, on atterrisse sur une page affichant les informations de l'ID correspondant au nom ?
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
30 avril 2014 à 10:58
Tu un problème au niveau de la ligne 7 du script artiste2.php :
"http://localhost/film/detail_artiste.php?id=35"  . $ligne_courante->id

Il sort d'ou le 35 ?
0
ChrisL18 Messages postés 6 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 30 avril 2014
Modifié par ChrisL18 le 30/04/2014 à 11:08
Oups, un oubli, c'était pour faire un test et voir si ça me renvoyait le nom correspondant. J'ai édité le message.

Où se situe mon problème pour afficher les détails du nom sur lequel je clique ?

Voici l'énoncé:

"Écrire le script detail_artiste.php qui affiche le détail d'un artiste particulier reconnu par son identifiant. L'appel à l'URL http://localhost/Films/detail_artiste.php?id=35 doit afficher le détail de l'artiste Sean Connery (ici d'identifiant 35). L'affichage du détail donne la photo de l'artiste ou l'avatar générique (image avatar_artiste.jpg fournie) à gauche. Les autres informations (nom, prénom et année de naissance ) à droite.
Le paramètre id est transmis en GET. Il est donc visible dans le script à travers la donnée : $_GET['id'].
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
30 avril 2014 à 11:22
Je ne vois pas ou est le problème.
Peux-tu joindre tes sources complètes ?
0
ChrisL18 Messages postés 6 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 30 avril 2014
30 avril 2014 à 16:10
Génial , ça fonctionne !! merci beaucoup !
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
30 avril 2014 à 16:14
N'oublie pas de marquer le sujet comme résolu, si c'est le cas.
0