Affichage des données en fonction d'un clic

Eléphant du PHP | 74 Messages

27 févr. 2006, 15:19

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?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 15:24

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 '&nbsp;'; 
	echo $data['prenom'];
	echo '</a>';
	echo '&nbsp;-&nbsp;'; 
	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'].'"';

Eléphant du PHP | 74 Messages

27 févr. 2006, 15:33

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...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 15:43

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 '&nbsp;'; 
	echo $data['prenom'];
	echo '</a>';
	echo '&nbsp;-&nbsp;'; 
	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.

Eléphant du PHP | 74 Messages

27 févr. 2006, 16:59

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?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 17:13

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 ?

Eléphant du PHP | 74 Messages

27 févr. 2006, 17:22

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 '&nbsp;';
			echo $data['prenom'];
			echo '</b></font></a>';
			echo '</td><td>&nbsp;=>&nbsp;';
			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&eacute;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">&nbsp;</td>
  </tr>
  <tr>
    <td height="16"><font face="Verdana" size="2"><b>N&deg; de T&eacute;l&eacute;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&deg; 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...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 17:33

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.'"';

Eléphant du PHP | 74 Messages

27 févr. 2006, 17:40

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.

Eléphant du PHP | 74 Messages

27 févr. 2006, 17:42

Oupsss, désolé :oops: :oops: :oops:
L'homme qui post plus vite que son ombre...
Ok c'est réglé, juste un problème de renommage de variable.

Merci Charabia
@+

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 17:44

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.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 17:44

lol oki :lol: Un tit résolu alors ;)

kurtz
Invité n'ayant pas de compte PHPfrance

09 juin 2011, 15:16

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 '&nbsp;-&nbsp;';

echo $data['tr_titre'];

echo '<br>';

echo '</a>';


}




?>