comment afficher le reste de ma base sur une autre page

Mammouth du PHP | 506 Messages

03 févr. 2021, 14:09

bonjour a tous


je viens de créer un formulaire ou le membre(pêcheur) rentre une foule de donnée
a présent je souhaiterais les afficher dans une page ou seront donnée juste les infos principale de tous les pêcheurs y soient affichées(cela est ok)
a present je souhaiterais que les infos détaillées de chaque pêcheur affichée sur une autre page


voici concrètement ce que je désire
j ai une base avec des données
lieu peche
prénom
pseudo
nombre de poissons captures
nombre de truite
nombre de gardon
nombre de breme
nombre de carpe
nombre de goujons
nombre de brochet
nombre d anguille
nombre de vairons

lorsque les visiteurs arrive sur la page des infos ils puissent voir les infos principale de tous les pêcheurs
le nom du pêcheur
son prénom
son pseudo
son lieu de pêche

mais si le visiteur veux voir les infos détaillée de d un pécheur il doit cliquer sur un lien qui ouvre une nouvelle page avec les infos détaillées de ce pêcheur

voici la requête pour la page principale

merci de l aide

Code : Tout sélectionner

<?php if (mysqli_num_rows($result) > 0) { ?> <div class="container"> <div class="container"> <div class="row"> <div class="col-sm"> prenom </div> <div class="col-sm"> lieu </div> <div class="col-sm"> pseudo </div> </div> </div> <?php $i=0; while($row = mysqli_fetch_array($result)) { ?> <div class="container"> <div class="row"> <div class="col-sm"> <?php echo $row["prenom"]; ?> </div> <div class="col-sm"> <?php echo $row["lieu"]; ?> </div> <div class="col-sm"> <?php echo $row["pseudo"]; ?> </div> </div> </div> <?php $i++; } ?> </div>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 févr. 2021, 16:26

Salutations !

Dans ton lien, tu dois spécifier un paramètre permettant d'identifier l'utilisateur dont tu souhaites afficher le détail. Par exemple "detail.php?pseudo=PseudoDuPecheur", mais il faut idéalement utiliser l'identifiant unique de la personne en base.

Dans ta page detail.php tu peux ainsi récupérer la valeur passée dans l'url : $_GET['pseudo']. Tu pourras ainsi utiliser celle-ci dans ta requête pour n'afficher que les informations de l'utilisateur dont le pseudo est "PseudoDuPecheur"

SELECT champ1, champ2.... FROM ta_table WHERE pseudo = ' .... '
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 506 Messages

03 févr. 2021, 16:36

merci pour la réponse

Dans ton lien, tu dois spécifier un paramètre permettant d'identifier l'utilisateur dont tu souhaites afficher le détail. Par exemple "detail.php?pseudo=PseudoDuPecheur", mais il faut idéalement utiliser l'identifiant unique de la personne en base.


donc dans mon fichier actuel j indique juste ce code qui pointe sur mon fichier detail.php ?

comment je fais avec l id svp

en fait je cherche a réaliser un truc comme sur ce site et que quand on clic sur la loupe on les détails
https://www.alapeche.be/index.php?mact= ... id=38&p=38

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 févr. 2021, 20:02

Si tu passes ta souris sur les différentes loupes de ce site (ou si tu ouvres chaque page une par une), tu verras que le paramètre "mf2838response_id" qui apparait dans l'url est différent à chaque fois : mf2838response_id=1105, mf2838response_id=1106 ...

C'est cette information qui est passée dans l'url et qui leur permet de distinguer les différents enregistrements et de t'afficher le détail de celui sur lequel tu as cliqué.

Si dans ta base de données tu as un identifiant unique, je te recommande de l'utiliser. A défaut le pseudo peut éventuellement faire l'affaire :)

Dans ton code, il suffit de faire un lien ainsi :
<div class="col-sm">
<a href="detail.php?id=<?php echo $row["pseudo"]; ?>"> <?php echo $row["pseudo"]; ?> </a>
</div>
En cliquant dessus, tu ouvriras la page detail.php en passant le pseudo (ou autre) en paramètre. Et dans la page detail.php, tu pourras récupérer ce pseudo passé dans l'url avec $_GET['id'] afin de l'utiliser dans ta requête SQL qui affichera le détail de l'utilisateur :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 506 Messages

04 févr. 2021, 23:10

bonsoir
merci pour la réponse c est vraiment sympa
oui juste je n avais pas remarquer ce détail important lorsque je cliquais sur la loupe de ce site

je viens d essayer d ajouter ce morceau de code de cette façon , mais il indique qu il ne troue plus aucun résultat

Code : Tout sélectionner

$i=0; while($row = mysqli_fetch_array($result)) { ?> <div class="container"> <div class="row"> <div class="col-sm"> <?php echo $row["first_name"]; ?> </div> <div class="col-sm"> <?php echo $row["last_name"]; ?> </div> <div class="col-sm"> <?php echo $row["city_name"]; ?> </div> <div class="col-sm"> <?php echo $row["email"]; ?> </div> <div class="col-sm"> <a href="detail.php?id=<?php echo $row["pseudo"]; ?>"> <?php echo $row["pseudo"]; ?> </a> </div> </div> </div> <?php $i++; } ?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 févr. 2021, 11:55

Hello !

Quand tu dis qu'il n'y a plus de résultat, c'est à dire ? Il n'y a plus de ligne affiché par ton while ? Le cas échéant, le problème est ailleurs car en l'état tu n'as fait qu'ajouter un lien autour du pseudo que tu affichais déjà avant.

Mais je vois que tu as changé les noms de tes index prenom, lieu... par first_name, city_name, etc.
Est-ce que pseudo est bien le nom d'une des colonnes de ta table ? (et est-ce bien une information unique ? si tu as un id en base, il est clairement préférable de l'utiliser)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 506 Messages

12 févr. 2021, 12:09

bonjour
merci pour la réponse
mais je suis parti sur un autre modèle entre temps
et pour ne pas tout mélanger
je reviendrais plus tard sur cet exemple pour bien comprendre ce qui ce passe que cela ne fonctionne pas
merci pour l aide