Insérer lien dans script PHP renvoyant vers page specifique

[Résolu/Fermé]
Signaler
Messages postés
6
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
30 avril 2014
-
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
-
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);
  };    
 ?>

9 réponses

Messages postés
4270
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
219
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
24
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'] . "'";

Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
24
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.
Messages postés
6
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
30 avril 2014

Ok, merci de vos réponses, je vais essayer un peu tout ça !
Messages postés
6
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
30 avril 2014

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 ?
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
24
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 ?
Messages postés
6
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
30 avril 2014

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'].
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
24
Je ne vois pas ou est le problème.
Peux-tu joindre tes sources complètes ?
Messages postés
6
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
30 avril 2014

Génial , ça fonctionne !! merci beaucoup !
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
24
N'oublie pas de marquer le sujet comme résolu, si c'est le cas.