Récupération de l'identifiant dans une autre page

Résolu/Fermé
cheikhsarr15 Messages postés 11 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 18 juillet 2016 - 3 juil. 2014 à 17:48
cheikhsarr15 Messages postés 11 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 18 juillet 2016 - 9 juil. 2014 à 15:22
Bonjour! Je suis entrain développer une application pour la gestion des agents dans une petite entreprise. Pour cela j'ai créer une table AGENT ayant comme clé primaire (PK) id_Agent:
Create table if not exists agent (
id_Agent varchar(5) not null,
nom_Agent varchar(30),prenom_Agent varchar(30),
Adr_Agent varchar(100),email_Agent varchar(50),tel_Agent varchar(50),
sexe varchar(10), sitMat varchar(20), langue varchar(100),
nbre_projet int not null,service int, Histo_Service int,
PRIMARY KEY (id_Agent),
CONSTRAINT fk_id_service FOREIGN KEY (Service) REFERENCES Service(id_Service),
CONSTRAINT fk_id_Histo_service FOREIGN KEY (Histo_Service) REFERENCES Histo_Service(id_Histo_Service)
) ENGINE= InnoDB;


J'ai deux pages agent.php et profil.php (c'est elle qui est censé récupérer l'id_Agent)

voici le code de agent.php:
<?php
include('connexion_bd.php');
$req=$bdd->query('SELECT * from agent');
while($donne=$req->fetch())
{

?>

<tr>
<th><input type="radio" name="choix" value="<?php echo $donne['id_Agent']?>"/></th>
<th><?php echo $donne['id_Agent']?></th>
<th><?php echo $donne['prenom_Agent']?></th>
<th><?php echo $donne['nom_Agent']?></th>
<th><?php echo $donne['Adr_Agent']?></th>
<th><?php echo $donne['email_Agent']?></th>
<th><?php echo $donne['service']?></th>
<th><?php echo $donne['nbre_projet']?></th>
<th><a href="agent/profil.php">Voir Plus</a></th>
</tr>
<?php }?>
Ici voir Plus est un lien vers la page profil.php. Alors j'ai essayé de récupérer l'id_Agent avec la méthode POST.

code profil.php:
<?php include('connexion_bd.php');
$req=$bdd->prepare("select * from agent where agent.id_Agent=:a");
$req->execute(array('a' => $_POST['choix']));
$donne=$req->fetch();
?>

Maintenant je teste avec:
Nom:<?php echo $donne['nom_Agent'];?>" <br/>
Prénom:<?php echo $donne['prenom_Agent']; ?>

Voila le probléme est que dans ma premiére page j'ai la liste de tous les agents présents dans la table mais en vrac. J'ai créé un petit lien "voir plus" pour afficher tous les informations relatives à 1 agent. Mon résonnement ne marche malheureusement.
J'aimerai savoir maintenant s'il y'a une méthode plus simple pour récupérer l'id_Agent afin d'afficher toutes le informations le concernant dans une autre page?

Cordialement!
A voir également:

3 réponses

JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 4/07/2014 à 04:08
Salut,

1 - Tu dois ajouter la balise form (avec comme méthode : GET, et action : agent/profil.php), puisque c'est un formulaire.
2 - Au lieu d'un lien tu mets un bouton ou un input de type : submit.

Sinon, si tu veux garder le lien, alors pas besoin d'un input radio, et tu mets juste :
<th>
  <a href="agent/profil.php?choix=<?php echo $donne['id_Agent']; ?>">
    Voir Plus
  </a>
</th>

PS : Ne pas oublier les points virgules à la fin de chaque instruction.

Et dans le deux cas, dans la page profil.php, tu récupères l'id de l'agent avec : $_GET['choix'].
Mettez en résolu quand c'est résolu ...
0
cheikhsarr15 Messages postés 11 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 18 juillet 2016
Modifié par cheikhsarr15 le 4/07/2014 à 14:25
J'ai finalement garder le lien. Dans la page agent/profil.php je récupére l'id_Agent par méthode GET comme ci dessous:

<?php
$req=$bdd->query("select * from agent ");
while( $donne=$req->fetch())
{
if($_GET['choix']=$donne['id_Agent'])
{ ?>
<img src="profil/<?php echo $donne['id_Agent']?>.jpg"/><br/>
Nom:<?php echo $donne['nom_Agent'];?> <br/>
Prénom:<?php echo $donne['prenom_Agent']; ?>
</div>
<div id="info">
<ul>
<li><b>Matricule:</b> <?php echo $donne['id_Agent']?></li>
<li><b>Adresse:</b> <?php echo $donne['Adr_Agent']?></li>
<li><b>Email:</b> <?php echo $donne['email_Agent']?></li>
</ul>
</div>
<?php } } ?>

Mais cette fois la liste de tous les agents s'affiche. Ce qui est tout à fait du résultat que je me suis fixé. J'ai essayé aussi avec la clause Where mais pareil
0
cheikhsarr15 Messages postés 11 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 18 juillet 2016
Modifié par cheikhsarr15 le 4/07/2014 à 14:49
je viens de me rendre compte que c'est moi qui ai fais une erreur sur l'operateur dans le if.
if($_GET['choix']==$donne['id_Agent'])

Merci infinément!
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
4 juil. 2014 à 23:01
De rien, mais le mieux c'est d'utiliser la clause WHERE.

$req = $bdd->query("SELECT * FROM agent WHERE id_Agent = :id");
$req->bindParam(':id', $_GET['choix'], PDO::PARAM_INT);
$req->execute();
$donne = $req->fetch();
0
cheikhsarr15 Messages postés 11 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 18 juillet 2016
9 juil. 2014 à 15:22
Ok merci beaucoup. J'y prendrai compte
0