Page 1 sur 1
Affichage des données en fonction d'un clic
Posté : 27 févr. 2006, 15:19
par newbee
Bonjour à tous!
Je sais, je sais, mon titre ne veux pas dire grand chose mais je n'étais pas inspiré...
Donc voila mon souci :
J'ai une liste d'utilisateur (en Bdd) que j'affiche avec :
$connect= mysql_connect($host,$login,$pass);
mysql_select_db($base, $connect);
$query="SELECT * FROM collaborateurs";
$result=mysql_query($query, $connect);
while($data=mysql_fetch_array($result))
{
echo $data['nom'];
echo ' ';
echo $data['prenom'];
echo ' - ';
echo $data['fonction'];
echo '<br>';
}
Ici no soucy.
Le problème c'est que je voudrais afficher les autres champs disponibles quand je clique sur un des utilisateurs.
Exemple si je clique sur Monsieur A, cela m'affiche (autre part dans la page) le tèl, la fonction, le service de Monsieur A (tout ces champs sont évidemment renseignés dans ma Bdd).
Une pitite aide siouplait M'sieur Dame?
Posté : 27 févr. 2006, 15:24
par charabia
Chaque enregistrement doit posséder un ID qui lui est propre. Dans ta boucle, tu peux la récupérer.
$connect= mysql_connect($host,$login,$pass);
mysql_select_db($base, $connect);
$query="SELECT * FROM collaborateurs";
$result=mysql_query($query, $connect);
while($data=mysql_fetch_array($result))
{
echo '<a href="autrepage.php?id='.$data['id'].'">';
echo $data['nom'];
echo ' ';
echo $data['prenom'];
echo '</a>';
echo ' - ';
echo $data['fonction'];
echo '<br>';
}
Dans la page de récupération, la requête affiche les données où l'id correspond à l'id passé en url.
$sql = 'SELECT * FROM ta_table WHERE id="'.$_GET['id'].'"';
Posté : 27 févr. 2006, 15:33
par newbee
Merci de ta rapidité...

Mais pardon de mon ignorance...

C'est sur la même page que je veux afficher ces infos. Quelle requète dois-je effectuer et comment l'appeller en fonction de l'Id?
un simple
echo $data['service']; ne suffit pas j'imagine... il me faut un SELECT...WHERE... mais je ne voit pas comment...
Posté : 27 févr. 2006, 15:43
par charabia
Là où tu veux afficher les infos tu peux faire une autre requête comme celle que je t'ai indiqué.
$query1 = 'SELECT * FROM ta_table WHERE id="'.$_GET['id_num'].'"';
Ensuite à chaque lien tu dois passer en paramètre l'id en question (c'est ce que j'ai fait dans ton code).
$connect= mysql_connect($host,$login,$pass);
mysql_select_db($base, $connect);
$query="SELECT * FROM collaborateurs";
$result=mysql_query($query, $connect);
while($data=mysql_fetch_array($result))
{
echo '<a href="autrepage.php?id_num='.$data['id'].'">';
echo $data['nom'];
echo ' ';
echo $data['prenom'];
echo '</a>';
echo ' - ';
echo $data['fonction'];
echo '<br>';
}
Dans ta table tu dois avoir un champ ID (ou autre) auto-incrément et clé primaire normalement.
Ensuite pour afficher tes infos, tu utilises la même chose que pour ta première requête.
Posté : 27 févr. 2006, 16:59
par newbee
donc...
Pour l'Id c'était ok avant.
Apres pour l'affichage, j'ai donc fait :
$query1 = 'SELECT * FROM collaborateurs WHERE id="'.$_GET['id_num'].'"';
$result1=mysql_query($query1, $connect);
$data1=mysql_fetch_array($result1);
Puis à chaque fois des
echo $data1['service']; sont censé faire l'affaire... mais nada et je ne vois pas pourquoi!
En sachant que toutes les infos sont sur la même âge, ne serait-ce pas ça qui plante le tout?
Posté : 27 févr. 2006, 17:13
par charabia
Peux tu me montrer ton code ?
Si tu exécutes ta requête directement à partir de phpMyAdmin avec un ID tu as un résultat ?
Le nada pour toi c'est une erreur ? ou page blanche ?
Posté : 27 févr. 2006, 17:22
par newbee
nada c'est rien du tout, aucun affichage.
Sinon mon code (attention, plus long du coup avec formatage html)
<?
include ("conf.inc.php");
$connect= mysql_connect($host,$login,$pass);
mysql_select_db($base, $connect);
$query="SELECT * FROM collaborateurs";
$result=mysql_query($query, $connect);
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>id_card</title>
</head>
<body>
<table width="950" border="0" cellspacing="1" cellpadding="0">
<tr>
<td width="397" valign="top">
<table>
<?
while($data=mysql_fetch_array($result))
{
echo '<tr><td>';
echo "<font face='verdana' size='2'><b>";
echo '<a href="card.php?id='.$data['id'].'">';
echo $data['nom'];
echo ' ';
echo $data['prenom'];
echo '</b></font></a>';
echo '</td><td> => ';
echo "<font face='verdana' size='2'>";
echo $data['fonction'];
echo '</font>';
echo '</td></tr>';
}
?>
</table> </td>
<td width="550">
<?
$query1 = 'SELECT * FROM collaborateurs WHERE id="'.$_GET['id_num'].'"';
$result1=mysql_query($query1, $connect);
$data1=mysql_fetch_array($result1);
?>
<table width="550" height="217" border="1" bordercolordark="#234A94" bordercolorlight="#FFFFFF" cellspacing="1" cellpadding="0">
<tr>
<td rowspan="8" width="150" height="217"><img src="imgs/photo/<? echo $data1['photo']; ?>" width="150" height="217"></td>
<td width="137" height="16"><font face="Verdana" size="2"><b>Service : </b></font></td>
<td width="259"><font face="Verdana" size="2"><b><i><? echo $data1['service']; ?></i></b></font></td>
</tr>
<tr>
<td height="16"><font face="Verdana" size="2"><b>Nom : </b></font></td>
<td><font face="Verdana" size="2"><b><? echo $data1['nom']; ?></b></font></td>
</tr>
<tr>
<td height="16"><font face="Verdana" size="2"><b>Prénom : </b></font></td>
<td><font face="Verdana" size="2"><b><? echo $data1['prenom']; ?></b></font></td>
</tr>
<tr>
<td height="16"><font face="Verdana" size="2"><b>Fonction : </b></font></td>
<td><font face="Verdana" size="2"><u><? echo $data1['fonction']; ?></u></font></td>
</tr>
<tr>
<td height="76" colspan="2"> </td>
</tr>
<tr>
<td height="16"><font face="Verdana" size="2"><b>N° de Téléphone : </b></font></td>
<td><font face="Verdana" size="2"><? echo $data1['telephone']; ?></font></td>
</tr>
<tr>
<td height="16"><font face="Verdana" size="2"><b>N° de Fax : </b></font></td>
<td><font face="Verdana" size="2"><? echo $data1['fax']; ?></font></td>
</tr>
<tr>
<td height="16"><font face="Verdana" size="2"><b>E-mail : </b></font></td>
<td><font face="Verdana" size="2"><? echo $data1['mail']; ?></font></td>
</tr>
</table>
<br></td>
</tr>
</table>
</body>
</html>
C'est donc la partie :
<?
$query1 = 'SELECT * FROM collaborateurs WHERE id="'.$_GET['id_num'].'"';
$result1=mysql_query($query1, $connect);
$data1=mysql_fetch_array($result1);
?>
Qui ne marche pas.
si tu y comprends quelque chose...
Posté : 27 févr. 2006, 17:33
par charabia
C'est normal qu'il ne t'affiche rien car d'entrée, l'url ne contient pas la variable, du coup comme elle est inexistante tu n'auras rien.
Mets la variable par défaut à 1 si jamais elle n'existe pas dans l'url avec une condition.
if(isset($_GET['id_num']))
{
$id_perso=$_GET['id_num'];
}
else
{
$id_perso=1;
}
$query1 = 'SELECT * FROM collaborateurs WHERE id="'.$id_perso.'"';
Posté : 27 févr. 2006, 17:40
par newbee
Cool, j'avance petit à petit, merci

Donc ma page se charge, il m'affiche les infos de l'utilisateurs avec
id=1.
Mais si je clique sur les autres utilisateurs, la variable passe bien dans l'Url mais mes infos affichées ne changent pas... (rafraichissement?)
En plus clair, dans mon Url, j'ai bien :
http://127.0.0.1/mon_dossier/card.php?id=6 mais aucun changement dans mes données affichées.
Posté : 27 févr. 2006, 17:42
par newbee
Oupsss, désolé
L'homme qui post plus vite que son ombre...
Ok c'est réglé, juste un problème de renommage de variable.
Merci Charabia
@+
Posté : 27 févr. 2006, 17:44
par charabia
Quand tu cliques sur le lien ça te recharge bien la page ? C'est un pb de rafraîssement comme tu dis je pense parce qu'il n'y a pas de raison pour que si tu mets id=6 il ne te change rien.
Essaies de recharger avec un nouvel id pour voir.
Posté : 27 févr. 2006, 17:44
par charabia
lol oki

Un tit résolu alors

Re: Affichage des données en fonction d'un clic
Posté : 09 juin 2011, 15:16
par kurtz
Bonjour,
J'ai suivi ce topic pour réaliser une page similaire mais je bloque.
Je n'arrive pas a afficher mes contenus en fonctions de mon ID sur la mm page
Je suis totalement perdu ! Pouvez-vous maidez ?
Voici mon code ou je recuper mon ID , Ici c mon titre en l'ocurence.
Je ne vois pas du tout comment poursuivre...
<?php
include ("admin/parametre.php");
$connect=mysql_query('SELECT tr_id,tr_content,tr_titre,tr_description,tr_img FROM travaux LIMIT 0,50');
while($data=mysql_fetch_array($connect))
{
echo '<a href="affichage_works.php?travail='.$data['tr_titre'].'">';
echo $data['tr_id'];
echo ' - ';
echo $data['tr_titre'];
echo '<br>';
echo '</a>';
}
?>