Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1528 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Comment créer un lien avec des éléments d'une base de données?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment créer un lien avec des éléments d'une base de données?

n°1682419
bingojm
Posté le 05-02-2008 à 23:55:50  profilanswer
 

Salut à tous,
 
Voici l'état actuel des choses:

Code :
  1. <? 
  2. include("connexion.php" ); 
  3. echo "<table border=\"1\" align=\"center\">\n";
  4. echo "<tr bgcolor=\"#F5CA89\">";
  5. echo "<td width=\"160\" align=\"left\" valign=\"middle\">";
  6. echo "Joueur:";
  7. echo "</td>";
  8. echo "<td width=\"80\" align=\"left\" valign=\"middle\">";
  9. echo "Points :"; 
  10. echo "</td>";
  11. echo "<td width=\"60\" align=\"left\" valign=\"middle\">";
  12. echo "Lieu :"."<br />";   echo "</td>";
  13. echo "</tr>";
  14. $query = "SELECT nom, points, lieu FROM production where idjoueur=id_joueur ORDER BY BINARY nom";
  15. $result = mysql_query($query) or die("Query failed" );
  16. while ($line = mysql_fetch_assoc($result)) {
  17.     echo "\t<tr>\n";
  18.     foreach ($line as $col_value) {
  19.         echo "\t\t<td>$col_value</td>\n";
  20.     }
  21.     echo "\t</tr>\n";
  22. }
  23. echo "</table>\n";
  24. ?>


Ceci me permet d'afficher les résultats de tous mes joueurs.
Maintenant, une fois que j'ai tous ces résultats qui s'affichent, je voudrais afficher le résultat d'un seul joueur en cliquant sur le nom de ce joueur (pour lui envoyer ses résultats personnels par exemple)
Mais comment puis-je intégrer un lien sur le nom de chaque joueur?
j'espère être clair...
Merci d'aider une nouvelle fois le petit débutant que je suis;)

mood
Publicité
Posté le 05-02-2008 à 23:55:50  profilanswer
 

n°1682515
soju
One shot !
Posté le 06-02-2008 à 09:06:17  profilanswer
 

tu ajoutes simplement un lien avec une variable GET (dans l'url), le plus simple est d'utiliser id_joueur

n°1682535
babasss
Posté le 06-02-2008 à 09:46:12  profilanswer
 

Juste pour préciser ce que dit soju :

soju a écrit :

tu ajoutes simplement un lien avec une variable GET (dans l'url), le plus simple est d'utiliser id_joueur


Tu modifies ton premier script en faisant un lien hypertexte sur le nom du joueur avec l'id_joueur dans l'URL puis tu crées un deuxième script (ou tu modifies celui existant) pour lequel tu affiches le détail par joueur à partir de l'id_joueur que tu auras passé via l'URL avec un GET
 


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1683046
bingojm
Posté le 06-02-2008 à 23:55:55  profilanswer
 

qu'appelles-tu mon 'premier script'? je suis perdu... je ne vois pas non plus trop à quoi doit ressembler mon lien. tu peux me donner un exemple, merci...

n°1683053
czh
Posté le 07-02-2008 à 00:31:05  profilanswer
 

Genre les pages http://monsite.com/index.php?monnumerodepage=54
 
Il est temps d'aller à l'école : http://www.siteduzero.com/tuto-3-7 [...] #ss_part_4
 
 
Dans ton cas ça ressemblerais à :  
 
foreach ($line as $col_value) {
  echo "\t\t<td>$col_value</td>\n";
}
 
à remplacer par :
 

Code :
  1. foreach ($line as $col_name => $col_value) {
  2.   if ($col_name == 'nom')
  3.     echo "\t\t<td><a href=\"?nom=$col_value\">$col_value</a></td>\n";
  4.   else
  5.     echo "\t\t<td>$col_value</td>\n";
  6. }

Message cité 1 fois
Message édité par czh le 07-02-2008 à 00:35:42
n°1683105
babasss
Posté le 07-02-2008 à 09:12:58  profilanswer
 

L'idée, c'est de faire deux scripts (un pour afficher la liste des joueurs, l'autre pour afficher le détail du joueur) sur deux pages différentes (ca peut se faire sur la même page, mais je pense pas que ca apporte grand chose)
 
Première page : liste_joueur.php

  • Tu affiches la liste des joueurs
  • Dans la liste, tu mets un lien hypertexte vers la deuxième page : detail_joueur.php?id=$id_joueur


Deuxième page : detail_joueur.php

  • Tu récupères la valeur de ta variable id passée dans l'URL
  • Tu affiches ce que tu as besoins pour le joueur sélectionné


C'est plus clair pour toi maintenant ?


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1684285
bingojm
Posté le 08-02-2008 à 22:03:31  profilanswer
 

czh a écrit :


Dans ton cas ça ressemblerais à :  
 
foreach ($line as $col_value) {
  echo "\t\t<td>$col_value</td>\n";
}
 
à remplacer par :
 

Code :
  1. foreach ($line as $col_name => $col_value) {
  2.   if ($col_name == 'nom')
  3.     echo "\t\t<td><a href=\"?nom=$col_value\">$col_value</a></td>\n";
  4.   else
  5.     echo "\t\t<td>$col_value</td>\n";
  6. }



OK, jusque là j'ai bien un lien qui apparait sur chaque nom, mais quand je clique dessus, rien ne change... c'est la même page qui revient, avec les noms de TOUS les joueurs. Mais comment faire apparaitre le contenu du seul joueur que je sélectionne?
Désolé de mettre du temps à comprendre, mais c'est comme ca que j'apprends le mieux... Merci encore

n°1684341
yellu
Posté le 09-02-2008 à 10:45:28  profilanswer
 

Il faut que tu exploite la variable $_GET['id_joueur'] et que tu t'en serves pour faire une requete plus fine (sur un seul joueur) et au lieu d'afficher un tableau tu fais un profil du joueur avec par exemple des <div> et des <span>.
 
Pense à vérifier la variable $_GET avant de t'en servir aussi, c'est un reflexe à adopter.
 
Le lien que tu semble avoir mis commence par '?' cela signifie que tu reste sur la même page, si tu veux aller sur une autre précede le du nom de la page en question.
 
ex: detail_joueur.php?id_joueur=10

n°1685501
bingojm
Posté le 12-02-2008 à 18:35:13  profilanswer
 

Voilà où j'en suis:

Code :
  1. while ($line = mysql_fetch_assoc($result)) {
  2.     echo "\t<tr>\n";
  3. foreach ($line as $col_name => $col_value) {
  4.   if ($col_name == 'nom')
  5.     echo "\t\t<td><a href=\"detail_joueur.php?id=$id_joueur\">$col_value</a></td>\n";
  6.   else
  7.     echo "\t\t<td>$col_value</td>\n";
  8. }
  9.     echo "\t</tr>\n";
  10. }
  11. echo "</table>\n";


Mais comment récuperer les GET? Je dois juste inclure ceci ? :

Code :
  1. $idcollaborateur=$_GET['idcollaborateur'];

Si oui, je dois mettre ca dans ma première page ? mais je ne vois pas trop ce que je dois mettre dans ma page detail_joueur.php...
J'imagine que je peux remettre la structure de mon tableau mais en-dessous je dois mettre quoi?
Merci................

n°1685824
bingojm
Posté le 13-02-2008 à 13:44:21  profilanswer
 

Plus personne pour m'aider? :(

mood
Publicité
Posté le 13-02-2008 à 13:44:21  profilanswer
 

n°1685852
babasss
Posté le 13-02-2008 à 14:15:49  profilanswer
 

Si ton lien est : detail_joueur.php?id=$id_joueur
=> Tu récupères ton résultat sur la page detail_joueur.php via la commande $_GET['id'] (vu que tu passes ton GET via la variable id)
 
Et dans ta page detail_joueur.php, tu affiches toutes les infos détaillés du joueur....

Citation :

je voudrais afficher le résultat d'un seul joueur en cliquant sur le nom de ce joueur (pour lui envoyer ses résultats personnels par exemple)


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1685854
Xav_
The only one...
Posté le 13-02-2008 à 14:17:42  profilanswer
 

si tu fais:

bingojm a écrit :

Code :
  1. echo "\t\t<td><a href=\"detail_joueur.php?id=$id_joueur\">$col_value</a></td>\n";



c'est pas:

bingojm a écrit :

Code :
  1. $idcollaborateur=$_GET['idcollaborateur'];



 
mais:

Code :
  1. $idcollaborateur=$_GET['id'] // il faut relire la variable avec le même nom que tu l'as créé;


 
et ensuite, une requete dans ta base qui récup les infos WHERE idcollaborateur = $idcollaborateur
et voilou ;)
 
PS: les variables GET même si elle sont des nombres, arrivent sous forme de string, donc un pti intval($_GET['id']) ça mange pas de pain, et gérer aussi, que si la requête ne renvoie rien (genre le visiteur qui irait directement sur l'URL de la page d'un collaborateur n'existant pas/plus ou autre bizarrerie du genre...) ben tu affiche que le collaborateur en question n'existe pas.
Pour savoir facilement si la requête a retourné quelque chose:
[code]if mysql_num_rows($res) > 0 //si tu es avec mysql biensur, sinon l'équivalent qui va bien[/cpp]


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1685909
ceyquem
E falso sequitur quodlibet
Posté le 13-02-2008 à 15:55:12  profilanswer
 

le intval permet aussi de securiser un minimum pour pas avoir d'injections sql

n°1686397
bingojm
Posté le 14-02-2008 à 16:00:29  profilanswer
 

Salut,
 
Tout d'abord, merci pour ces conseils. Je comprends mieux...
Pour la première page, je laisse ainsi. (si j'ai bien compris)
Et pour la deuxième detail_joueur.php, j'ai mis ceci, mais ca n'est pas complet vu que jusque là ca ne donne rien.

Code :
  1. <?
  2. include("connexion.php" ); 
  3. $resultat=$_GET['id'];
  4. echo $resultat;
  5. ?>


Que dois-je mettre d'autre sur cette page?
Où dois-je mettre WHERE resultat= $resutat (cette syntaxe est bien exacte? je ne la comprends pas bien...)
Je pensais à un truc comme ca mais ca ne va pas:

Code :
  1. $resultat = mysql_query("SELECT * FROM collaborateur, production WHERE id_collaborateur='".$_GET['id']."' " )or die(mysql_error());
  2. echo $resultat;


Je suis sûr qu'il manque qqch pour cette deuxième page mais quoi? éclairez-moi svp. merci!


Message édité par bingojm le 14-02-2008 à 16:24:22
n°1686408
babasss
Posté le 14-02-2008 à 16:21:05  profilanswer
 

On va repartir de ton besoin :

bingojm a écrit :

Salut à tous,
Voici l'état actuel des choses:

Code :
  1. [...]


Ceci me permet d'afficher les résultats de tous mes joueurs.


Tu as ta première page qui affiche les résultats "globaux" pour tous les joueurs (page liste_joueur.php)

bingojm a écrit :


Maintenant, une fois que j'ai tous ces résultats qui s'affichent, je voudrais afficher le résultat d'un seul joueur en cliquant sur le nom de ce joueur (pour lui envoyer ses résultats personnels par exemple)


Là, tu veux une autre page pour visualiser le détail d'où les conseils que l'on te donne (créer une deuxième page : detail_joueur.php, passer la variable en GET, ....)
Aprés nous, on ne sait pas ce que tu veux y mettre, à toi de décider...
 
Pour répondre à ta question, si tu lances la page : http://monsite/detail_joueur.php?id=4
Alors ton code doit te renvoyer "4".


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1686412
bingojm
Posté le 14-02-2008 à 16:32:46  profilanswer
 

oui oui c'est bien ca. j'ai créé cette deuxième page detail_joueur.php.
Imaginons que je veux y afficher les mêmes résultats que sur la première page mais rien que ceux correspondants au joueur que j'ai sélectionné: nom, points, lieu.
Mais je ne vois pas comment je dois faire concrètement pour récupérer ces variables GET...
Comme ceci je me rapproche?

Code :
  1. $resultat = mysql_query("SELECT * FROM collaborateur, production WHERE id_collaborateur='".$_GET['id']."' " )or die(mysql_error());
  2. echo $resultat;


J'avais édité le message précédent le temps que tu répondes;) merci...
Aussi, lorsque je suis sur la première page et que je mets la souris sur un joueur, le lien est: http://monsite/fichiers/detail_joueur.php?id=
Est ce bien correct? je ne dois rien voir après le id=?

Message cité 1 fois
Message édité par bingojm le 14-02-2008 à 16:35:41
n°1686427
babasss
Posté le 14-02-2008 à 16:42:58  profilanswer
 

bingojm a écrit :

Aussi, lorsque je suis sur la première page et que je mets la souris sur un joueur, le lien est: http://monsite/fichiers/detail_joueur.php?id=
Est ce bien correct? je ne dois rien voir après le id=?


Le premier pb est là.... Tu dois voir qqch après "id=", tu dois voir l'id de ton joueur (celui qui est dans ta table). Il faut que tu t'arranges pour le récupèrer dans ta requete SQL (sur la première page) afin de l'afficher dans ton lien hypertexte...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1686446
bingojm
Posté le 14-02-2008 à 17:01:28  profilanswer
 

ok... je n'arrive pas à récupérer la bonne info...
J'ai donc:

Code :
  1. <?
  2. include("connexion.php" );
  3. echo "<table border=\"1\" align=\"center\">\n";
  4. echo "<tr bgcolor=\"#F5CA89\">";
  5. echo "<td width=\"160\" align=\"left\" valign=\"middle\">";
  6. echo "Joueur:";
  7. echo "</td>";
  8. echo "<td width=\"80\" align=\"left\" valign=\"middle\">";
  9. echo "Points :";
  10. echo "</td>";
  11. echo "<td width=\"60\" align=\"left\" valign=\"middle\">";
  12. echo "Lieu :"."<br />";   echo "</td>";
  13. echo "</tr>";
  14. $query = "SELECT nom, points, lieu FROM production where idjoueur=id_joueur ORDER BY BINARY nom";
  15. $result = mysql_query($query) or die("Query failed" );
  16. while ($line = mysql_fetch_assoc($result)) {
  17.     echo "\t<tr>\n";
  18. foreach ($line as $col_name => $col_value) {
  19.   if ($col_name == 'nom')
  20.     echo "\t\t<td><a href=\"detail_joueur.php?id=$id_joueur\">$col_value</a></td>\n";
  21.   else
  22.     echo "\t\t<td>$col_value</td>\n";
  23. }
  24.     echo "\t</tr>\n";
  25. }
  26. echo "</table>\n";
  27. ?>[cpp]
  28. Mais pq est-ce que $id_joueur ne récupère pas la valeur?

n°1686462
babasss
Posté le 14-02-2008 à 17:18:48  profilanswer
 

Tout simplement parce que ce n'est pas comme ca que l'on récupère une valeur d'une requete SQL
Pour récupérer la valeur, il faut rajouter l'id dans ta liste de champs "SELECT nom, points, lieu, idjoueur FROM production where idjoueur=id_joueur" (au passage la syntaxe SQL est [:vomi] , il faut mieux utiliser un inner join).
Par contre cela va te poser un problème dans ton bout de code (que au passage je trouve complètement idoit pour afficher trois colonnes):

Code :
  1. foreach ($line as $col_name => $col_value) {
  2. if ($col_name == 'nom')
  3. echo "\t\t<td><a href=\"detail_joueur.php?id=$id_joueur\">$col_value</a></td>\n";
  4. else
  5. echo "\t\t<td>$col_value</td>\n";
  6. }


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1686497
bingojm
Posté le 14-02-2008 à 18:20:07  profilanswer
 

en réalité, j'ai plus de colonnes que ca... j'ai simplifié ici.
mais j'ai bien rajouté l'id dans la liste de champs mais je n'arrive tjs pas à voir le lien complet!!! pourquoi??? j'ai tjs "detail_joueur.php?id=" puis plus rien....

n°1686498
babasss
Posté le 14-02-2008 à 18:22:04  profilanswer
 

essaye qqch comme $line['idjoueur']


Message édité par babasss le 14-02-2008 à 18:22:11

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1686500
bingojm
Posté le 14-02-2008 à 18:31:40  profilanswer
 

non plus... voilà ce que j'ai:
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING on line 63

n°1686510
babasss
Posté le 14-02-2008 à 19:05:48  profilanswer
 

Et à la ligne 63 de ton code, il y à quoi ?

 

En tout cas, si tu écris :

Code :
  1. $query = "SELECT idjoueur FROM production where idjoueur=id_joueur ORDER BY BINARY nom";
  2. $result = mysql_query($query) or die("Query failed" );
  3. while ($line = mysql_fetch_assoc($result))
  4. {
  5. echo $line['idjoueur'];
  6. }


Il va te renvoyer tous les idjoueur....


Message édité par babasss le 14-02-2008 à 19:08:10

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1686514
bingojm
Posté le 14-02-2008 à 19:19:31  profilanswer
 

Non, voilà ce que j'ai:

Code :
  1. $query = "SELECT nom, points, lieu, id_joueur FROM joueurs, production where idjoueur=id_joueur ORDER BY BINARY nom";
  2. $result = mysql_query($query) or die("Query failed" );
  3. while ($line = mysql_fetch_assoc($result)) {
  4.     echo "\t<tr>\n";
  5. foreach ($line as $col_name => $col_value) {
  6.   if ($col_name == 'nom')
  7.     echo "\t\t<td><a href=\"detail_joueur.php?id=$line['id_joueur]\">$col_value</a></td>\n";
  8.   else
  9.     echo "\t\t<td>$col_value</td>\n";
  10. }
  11.     echo "\t</tr>\n";
  12. }


Est-ce censé être correct?

n°1686522
babasss
Posté le 14-02-2008 à 19:36:12  profilanswer
 

Non. Ton code est truffé d'erreur de syntaxe :

  • ligne 7 à 10 : la structure classique d'un if est : if (condition) { condition_then } else {condition_else}
  • ligne 8 : il faut écrire $line['id_joueur'] et non $line['id_joueur] (fermeture de la quote manquante)
  • ligne 8 : quand tu lis une variable dans un echo, le plus propre est d'arrêter ton echo et de le reprendre après : echo "Maman a dit ".$variable_bonjour." et elle est partie...";
  • ligne 8 : perso je déteste les \" et je les évite le plus possible => je préfère écrire : echo '\t\t<td><a href="detail_joueur.php?id='.$line['id_joueur'].'">$col_value</a></td>\n';


Code :
  1. $query = "SELECT nom, points, lieu, id_joueur FROM joueurs, production where idjoueur=id_joueur ORDER BY BINARY nom";
  2. $result = mysql_query($query) or die("Query failed" );
  3. while ($line = mysql_fetch_assoc($result)) {
  4.     echo "\t<tr>\n";
  5. foreach ($line as $col_name => $col_value) {
  6.   if ($col_name == 'nom')
  7.     echo "\t\t<td><a href=\"detail_joueur.php?id=$line['id_joueur]\">$col_value</a></td>\n";
  8.   else
  9.     echo "\t\t<td>$col_value</td>\n";
  10. }
  11.     echo "\t</tr>\n";
  12. }


 
Ton code devient alors :

Code :
  1. $query = "SELECT nom, points, lieu, id_joueur FROM joueurs, production where idjoueur=id_joueur ORDER BY BINARY nom";
  2. $result = mysql_query($query) or die("Query failed" );
  3. while ($line = mysql_fetch_assoc($result)) {
  4.   echo "\t<tr>\n";
  5.   foreach ($line as $col_name => $col_value) {
  6.   if ($col_name == 'nom')
  7.     { echo '\t\t<td><a href="detail_joueur.php?id='.$line['id_joueur'].'">'.$col_value.'</a></td>\n'; }
  8.     else
  9.     { echo '\t\t<td>'.$col_value.'</td>\n'; }
  10.   }
  11.   echo "\t</tr>\n";
  12. }


Message édité par babasss le 14-02-2008 à 19:42:25

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1686547
bingojm
Posté le 14-02-2008 à 20:40:40  profilanswer
 

Super! j'ai fait une petite modif et ca marche.!!
Maintenant il m'envoie bien la valeur correspondante.
Revenons au problème de la 2è page si tu veux bien:
voilà ce que j'ai mis pour voir si cela fonctionne mais ce n'est pas le cas malheureusement:

Code :
  1. $query = mysql_query("SELECT nom, points, lieu, id_joueur FROM joueurs, production WHERE id_joueur='".$_GET['id']."' " )or die(mysql_error());
  2. $result = mysql_query($query) or die("Query failed" );
  3. while ($line = mysql_fetch_assoc($result)) {
  4.     echo "\t<tr>\n";
  5.     foreach ($line as $col_value) {
  6.         echo "\t\t<td>$col_value</td>\n";
  7.     }
  8.     echo "\t</tr>\n";
  9. }
  10. echo "</table>\n";


le message d'erreur est le même que tout à l'heure.
Que faire?

Message cité 1 fois
Message édité par bingojm le 14-02-2008 à 21:18:30
n°1686565
babasss
Posté le 14-02-2008 à 21:45:04  profilanswer
 

bingojm a écrit :

Super! j'ai fait une petite modif et ca marche.!!

Code :
  1. $query = mysql_query("SELECT nom, points, lieu, id_joueur FROM joueurs, production WHERE id_joueur='".$_GET['id']."' " )or die(mysql_error());
  2. $result = mysql_query($query) or die("Query failed" );
  3. [...]




Y'a un mysql_query en trop...
 
Nota : un bon moyen pour débuguer tout seul ton code est de tester d'où vient l'erreur :

  • tu testes le sql directement dans phpmyadmin en prenant le code qui ser tà ta requete
  • si c'est pas le sql, tu cherches ligne par ligne en désactivant les lignes uen par une


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1686596
bingojm
Posté le 14-02-2008 à 22:26:21  profilanswer
 

Super, j'ai bien de l'affichage maintentant, mais...
J'ai bien le même nom du joueur, sauf que pour le reste des données, elles sont toutes affichées (les données de tous les joueurs comme si elles correspondaient toutes au même joueur, mais ce n'est pas le cas).
Je dois certainement préciser davantage mon WHERE non? mais je ne vois pas comment...


Message édité par bingojm le 14-02-2008 à 22:29:51
n°1686598
babasss
Posté le 14-02-2008 à 22:29:10  profilanswer
 

il manquerait pas un idjoueur=id_joueur de manière à avoir  

Code :
  1. WHERE idjoueur=id_joueur AND id_joueur= $_GET['id']


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Comment créer un lien avec des éléments d'une base de données?

 

Sujets relatifs
changer les lien d'une page coté client[CSS]Couleur d'un lien dans un div en conflit
[Résolu] Connexion php sur base sql server 2005les elements de ma page n apparaissent pas de la meme facon partt :s
[VBS] AD Créer liste distrib + adresse mailSchéma des tables Base Firebird
Lire les données des capteurs dans un programme.Dictionnaire : remplacer un mot par lien?
creer une feuille par ligne remplieProblème de connexion à une base de données MySQL
Plus de sujets relatifs à : Comment créer un lien avec des éléments d'une base de données?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR