Bonjour,
Lors de la récupération des données via SQL. Celles-ci s'affiche dans un tableau. J'aimerai pouvoir cliquer sur un lien (voir profil) pour acceder directement à la fiche de l'utilisateur.
Merci
Bonjour,
Lors de la récupération des données via SQL. Celles-ci s'affiche dans un tableau. J'aimerai pouvoir cliquer sur un lien (voir profil) pour acceder directement à la fiche de l'utilisateur.
Merci
Donc que veux tu savoir?
SI tu veux cliquer sur n lien tu mets un href sur le lien que tu veux avec un indice, puis tu lances une nouvelle page ou il y a l'info de ton utilistauer .. non?
Si j'ai bien compris ce que tu veux faire, tu peux réaliser celà simplement.
Tu as la liste de tes utilisateurs, tu crée un lien avec un paramètre Num par exemple :
Dans ta page profil tu récupère le numéro de l'utilisateur avec la méthode GET et tu récupère les informations de cet utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $req="select NUtilisateurs from utilisateurs"; $res=mysql_query($req) or die(mysql_error()); while(list($num)=mysql_fetch_row($res)){ echo "<a href='profil.php?num=$num'>Voir le profil</a>"; }
J'espère que j'ai bien compris ce que tu voulais dire![]()
Dans ton tableau HTML tu code ca :
et dans page.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <a href='page.php?profil=$PROFILE'>$PROFILE</a>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (isset($_GET['profil'])){ // Un profile a ete passe en parametre par la page xxx.php $profileSel = $_GET['profil']; }else ...
Merci bien, j'ai capté le truc en faisant :
Par contre, comme je fais une recherche de plusieurs utilisateurs à l'aide d'un formulaire, j'aimerai que cela s'affiche dans un tableau à coter des résultat de la requete et pas à cote à cote.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $result=mysql_db_query($sql_bdd,"SELECT id from recherche",$db_link) or die(mysql_error()); while(list($id)=mysql_fetch_row($result)){ echo "<a href='../../index.php?page=membres&id=$id'>Voir le profil</a>"; }
De plus cette solution est bonne mais cela m'affiche tous les utilisateurs, donc le formulaire ne sert plus à rien dans l'histoire
Je vous donne le code de ma page de résultat :
Si quelqu'un aurait une idée, ce serait super cool...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 <? require("protect/conf.php"); $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd); if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;} $reponse = mysql_db_query($sql_bdd,"SELECT COUNT(*) AS nbre_entrees FROM membre",$db_link) or die(mysql_error()); $donnees = mysql_fetch_array ($reponse); //Recupere les paramètres $requete=mysql_db_query($sql_bdd,"SELECT id FROM recherche WHERE regionr LIKE '$regionr_recherche' OR exp_recherche LIKE '$exp_recherche' ORDER BY id_recherche DESC",$db_link) or die(mysql_error()); $result=mysql_db_query($sql_bdd,"SELECT id from recherche",$db_link) or die(mysql_error()); while(list($id)=mysql_fetch_row($result)){ echo "<a href='../../index.php?page=membres&id=$id'>Voir le profil</a>"; } $requete_limit = sprintf("%s LIMIT %d, %d", $requete, $startRow, $maxRows); $row = mysql_fetch_array($requete); if (isset($_GET['totalRows'])) { $totalRows = $_GET['totalRows']; } else { $all = mysql_query($requete); $totalRows = mysql_num_rows($all); } $totalPages = ceil($totalRows/$maxRows)-1; //Identifiant $id_recherche = $row["id"]; $regionr_recherche = $row["regionr"]; $exp_recherche = $row["exp"]; $form_recherche = $row["form"]; mysql_close($db_link); ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="822" bgcolor="#F8F8F8"><table width="99%" height="775" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="775" valign="top" bgcolor="#F8F8F8"><p> </p> <table width="95%" height="205" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="19"> </td> </tr> <tr> <td height="0"> </td> </tr> <tr> <td height="1">Vous avez actuellement : <? echo $donnees['nbre_entrees']; ?> membre(s)</td> </tr> <tr> <td height="0"> </td> </tr> <tr> <td height="0"><table width="827" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="182"><div align="center">Intitulé du poste </div></td> <td width="161"><div align="center">Région</div></td> <td width="122"><div align="center">Type de contrat </div></td> <td width="111"><div align="center">Disponibilité</div></td> <td width="113"><div align="center">Formation</div></td> <td width="124"><div align="center">Expérience</div></td> </tr> <tr> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$int_poste_recherche"; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$regionr_recherche"; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$typ_contrat_recherche"; ?></font></div></td> <td> </td> <td><div align="center"><? echo "$id"; ?></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$exp_recherche"; ?></font></div></td> </tr> </table>![]()
Pour ton affichage, place juste le lien dans la même boucle que celle ou tu récupère le groupe d'utilisateur qu'il te faut.
Avec mon exemple, bien sûr que cela affiche tous les utilisateurs, c'était juste pour te montrer, à toi de l'adapter.
C'est bon ça fonctionne mais je n'arrive pas à afficher tous les résultats de ma recherche![]()
C'est à dire ?
Ce doit être un problème de SQL
Fais un echo de ta requête et regarde ce qu'elle te donne.
En fait, j'ai fais un formulaire de recherche d'une table. Suivant cette recherche, la page devrait afficher plusieurs résultats dans un tableau, ce qu'elle ne fait pas. Elle n'affiche qu'un seul résultat, alors qu'il y'en a plusieur.
Je te donne le code de la page résultat.php
la page s'affiche sans erreur. de plus, lors de ma requete, je demande bien de tout prendre, non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 <? require("protect/conf.php"); $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd); if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;} $reponse = mysql_db_query($sql_bdd,"SELECT COUNT(*) AS nbre_entrees FROM membre",$db_link) or die(mysql_error()); $donnees = mysql_fetch_array ($reponse); //Recupere les paramètres $requete=mysql_db_query($sql_bdd,"SELECT * FROM recherche WHERE int_poste LIKE '$int_poste_recherche' OR regionr LIKE '$regionr_recherche' OR typ_contrat LIKE '$typ_contrat_recherche' ORDER BY id_recherche DESC",$db_link) or die(mysql_error()); //$requete_limit = sprintf("%s LIMIT %d, %d", $requete); $row = mysql_fetch_array($requete); //Type de recherche $int_poste_recherche = $row["int_poste"]; $typ_contrat_recherche = $row["typ_contrat"]; $regionr_recherche = $row["regionr"]; $mobilite_recherche = $row["mobilite"]; $disp_recherche = $row["disp"]; $exp_recherche = $row["exp"]; $id_recherche = $row["id"]; mysql_close($db_link); ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="822" bgcolor="#F8F8F8"><table width="99%" height="775" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="775" valign="top" bgcolor="#F8F8F8"><p> </p> <table width="95%" height="205" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="19"> </td> </tr> <tr> <td height="0"> </td> </tr> <tr> <td height="1">Vous avez actuellement : <? echo $donnees['nbre_entrees']; ?> membre(s)</td> </tr> <tr> <td height="0"> </td> </tr> <tr> <td height="0"><table width="827" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="182"><div align="center">Intitulé du poste </div></td> <td width="161"><div align="center">Région</div></td> <td width="122"><div align="center">Type de contrat </div></td> <td width="111"><div align="center">Disponibilité</div></td> <td width="113"><div align="center">Formation</div></td> <td width="124"><div align="center">Voir profil </div></td> </tr> <tr> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$int_poste_recherche"; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$regionr_recherche"; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$typ_contrat_recherche"; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$disp_recherche"; ?></font></div></td> <td><div align="center"></div></td> <td><div align="center"><a href="../../index.php?page=membres&id=<?php echo "$id_recherche"; ?>">Cliquer</a></div></td> </tr> </table>
Je pense que c'est normal que tu ai qu'un seul résultat :
Tu fais bien ta requête mais le problème vient de la récupération des résultats, tu utilise $row = mysql_fetch_array($requete);, ce qui est juste, mais là, tu ne récupère que le premier enregistrement.
Tu dois faire une boucle pour récupéré les différents résultats :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 while($row=mysql_fetch_assoc($requete)){ $int_poste_recherche = $row["int_poste"]; $typ_contrat_recherche = $row["typ_contrat"]; $regionr_recherche = $row["regionr"]; $mobilite_recherche = $row["mobilite"]; $disp_recherche = $row["disp"]; $exp_recherche = $row["exp"]; $id_recherche = $row["id"]; // ton affichage }
Je comprends et fait ce que tu viens de me dire mais cela ne fonctionne toujours pas malheureusement
J'ai meme viré $row = mysql_fetch_array
Tu as bien mis ton affichage dans ta boucle ?
Essaye juste ça :
Si ta requete renvoie plusieurs résultats, ils seront affichés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 while($row=mysql_fetch_assoc($requete)){ echo $row["int_poste"]."<br>"; echo $row["typ_contrat"]."<br>"; echo $row["regionr"]."<br>"; echo $row["mobilite"]."<br>"; echo $row["disp"]."<br>"; echo $row["exp"]."<br>"; echo $row["id"]."<br>"; echo "<br><br>"; }
C'est vrai, ils s'affiches bien de cette manière. Comment pourrais-je faire pour que l'affichage soit dans mon tableau. Il faut que je fasse tout en PHP?
Désolé de t'embeter encore avec mes problèmes mais j'aurai aussi une autre petite question à te poser.
Comment fait on un affichage de 10 réponses par pages stp?
Merci beaucoup d'avance pour ton soutient![]()
Pour l'affichage des réponses 10 par 10, tu peux utiliser la clause LIMIT dans ta requete SQL et après l'affichage de tes 10 réponses, tu met un lien qui permettra d'afficher les 10 suivantes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 <table width="95%" height="205" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="19"> </td> </tr> <tr> <td height="0"> </td> </tr> <tr> <td height="1">Vous avez actuellement : <? echo $donnees['nbre_entrees']; ?> membre(s)</td> </tr> <tr> <td height="0"> </td> </tr> <tr> <td height="0"><table width="827" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="182"><div align="center">Intitulé du poste </div></td> <td width="161"><div align="center">Région</div></td> <td width="122"><div align="center">Type de contrat </div></td> <td width="111"><div align="center">Disponibilité</div></td> <td width="113"><div align="center">Formation</div></td> <td width="124"><div align="center">Voir profil </div></td> </tr> <? while($row=mysql_fetch_assoc($requete)){ $int_poste_recherche = $row["int_poste"]; $typ_contrat_recherche = $row["typ_contrat"]; $regionr_recherche = $row["regionr"]; $mobilite_recherche = $row["mobilite"]; $disp_recherche = $row["disp"]; $exp_recherche = $row["exp"]; $id_recherche = $row["id"]; ?> <tr> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo $int_poste_recherche; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo $regionr_recherche; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo $typ_contrat_recherche; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo $disp_recherche; ?></font></div></td> <td><div align="center"></div></td> <td><div align="center"><a href="../../index.php?page=membres&id=<?php echo "$id_recherche"; ?>">Cliquer</a></div></td> </tr> <? } ?> </td> </tr> </table> </td> </tr> </table>
Cool mais cela ne m'affiche rien...![]()
J'ai supprimé l'asterix aussi car cela me donne une belle erreur
Tu n'as rien ?![]()
Tu ne vois même pas le tableau ?
[EDIT] Il manque une </table> après le </tr> ou j'affiche les infos, juste avant la fermeture du } je ne l'avais pas vu.
PS : désolé pour l'astérisque ^^
désolé j'avais la flemme de retaper ton code, là sa doit être bon. Par contre le code a besoin d'être optimisé car je trouve la construction est peu lourde. Essaie d'utiliser les css pour la mise en forme ton tableau par ex.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <tr> <td height="0"><table width="827" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="182"><div align="center">Intitulé du poste </div></td> <td width="161"><div align="center">Région</div></td> <td width="122"><div align="center">Type de contrat </div></td> <td width="111"><div align="center">Disponibilité</div></td> <td width="113"><div align="center">Formation</div></td> <td width="124"><div align="center">Voir profil </div></td> </tr> <tr> <?php $int_poste_recherche = $row["int_poste"]; $typ_contrat_recherche = $row["typ_contrat"]; $regionr_recherche = $row["regionr"]; $mobilite_recherche = $row["mobilite"]; $disp_recherche = $row["disp"]; $exp_recherche = $row["exp"]; $id_recherche = $row["id"]; while($row=mysql_fetch_assoc($requete)){ ?> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$int_poste_recherche"; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$regionr_recherche"; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$typ_contrat_recherche"; ?></font></div></td> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><? echo "$disp_recherche"; ?></font></div></td> <td><div align="center"></div></td> <td><div align="center"><a href="../../index.php?page=membres&id=<?php echo "$id_recherche"; ?>">Cliquer</a></div></td> <?php } ?> </tr>
L'affectation de tes variables est faite avant ta boucle Yobs, ce qui veut dire qu'elle ne changeront pas, tu auras toujours le même résultats qui va s'afficher.
Essaye de modifier ma solution avec ce que je t'ai dis plus haut Djinko, elle devrait fonctionner
Cela fonctionne mais, ça m'affiche autant de tableau que de résultats.
J'aimerai que les résultats ne soient que dans un seul et meme tableau...![]()
Pour vous donner un exemple, cela m'affiche :
Vous avez actuellement : 5 membre(s)
Int poste Région Type de contrat Disponibilité Voir profil
inge Ile de france CDI immediate Cliquer
Vous avez actuellement : 5 membre(s)
Int poste Région Type de contrat Disponibilité Voir profil
admin Ile de france Indifférent immediate Cliquer
Vous avez actuellement : 5 membre(s)
Int poste Région Type de contrat Disponibilité Voir profil
tech Ile de france Indifférent +1 mois Cliquer
et j'aimerai que cela s'affiche de cette maniere :
Vous avez actuellement : 5 membre(s)
Int poste Région Type de contrat Disponibilité Voir profil
inge Ile de france CDI immediate Cliquer
admin Ile de france Indifférent immediate Cliquer
tech Ile de france Indifférent +1 mois Cliquer
![]()
Partager