Résolu Récupérer le pseudo d'un membre grâce à sont id

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
Bonjour,
J'ai fait une page de classements avec leurs jetons/crédits/pixels et j'aimerais ajouté un autre champs (user_stats)

Donc je vous explique j'ai une table qui ce nomme user_stats avec 2 colonne pour le classement 'id' et 'AchievementScore'.

La colonne id est l'id de l'utilisateur.
AchievementScore c'est sont score.

Donc le soucis ses que ma page affiche l'id et non le pseudo donc je ne ses pas comment m'y prendre car normalement y'a le pseudo et le score.

Voila mon code:
Code:
<div id="column5" class="column">
<div class="habblet-container">
<div class="cbb clearfix red" style="width:240px">
<h2 class="title">Winwins
</h2>
<div class="box-content">
<div class="tableborder">
<table cellpadding="4" cellspacing="0" width="100%">
<?php
        $req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 20");
        while($classement = $req->fetch()) {
?>
<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $classement['id'];?>"><?php echo $classement['id'];?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php } ?>
</table>
</div>
</div>
</div>
</div>
<script type="text/javascript">if(!$(document.body).hasClassName('process-template')){Rounder.init();}</script>
<script type="text/javascript">if(!$(document.body).hasClassName('process-template')){Rounder.init();}</script>
 

Louki

Ancien staff
Inscription
12 Mars 2021
Messages
7 536
Réactions
4 583
Points
10 116
Après ses vrais me m'y connais pas trop met il y'a bien avoir un moyen ?

Ses sa exactement

Cette fonction doit être mise dans la première boucle, pour récupérer l'id de ta table user_stats
$id_membre = $classement['id'];

Après tu fais la requête pour que la requête recherche l'user_id en rapport à l'id.
<?php
$req = $bdd->query("SELECT * FROM tables_user WHERE user_id=.'$id_membre'.");
while($classement = $req->fetch()) {}
?>

Il me semble que cela devrait aller ._. Je me perds, c'est pas évident sans avoir tout devant sois.
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
Cette fonction doit être mise dans la première boucle, pour récupérer l'id de ta table user_stats
$id_membre = $classement['id'];

Après tu fais la requête pour que la requête recherche l'user_id en rapport à l'id.
<?php
$req = $bdd->query("SELECT * FROM tables_user WHERE user_id=.'$id_membre'.");
while($classement = $req->fetch()) {}
?>

Il me semble que cela devrait aller ._. Je me perds, c'est pas évident sans avoir tout devant sois.
J'ai fait ton truc j'obtiens sa: Fatal error: Call to a member function fetch() on a non-object in/home/u524274***/public_html/classement.phpon line 134
Voila mon code:
Code:
<?php
$id_membre = $classement['id'];
        $req = $bdd->query("SELECT * FROM users WHERE id = .'$id_membre'.");
while($classement = $req->fetch()) {
?>
<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $classement['id'];?>"><?php echo $classement['id'];?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php } ?>
 

Louki

Ancien staff
Inscription
12 Mars 2021
Messages
7 536
Réactions
4 583
Points
10 116
PHP:
Ce code $id_membre = $classement['id']; doit être mis dans ta première requête. Pas ici. ^^

<div id="column5" class="column">
    <div class="habblet-container">
        <div class="cbb clearfix red" style="width:240px">
           <h2 class="title">Winwins</h2>
             <div class="box-content">
                <div class="tableborder">
                   <table cellpadding="4" cellspacing="0" width="100%">
                     
                    <?php
                       $req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 20");
                       while($classement = $req->fetch()) {
                       $id_membre = echo $classement['id']; 
                   ?>
                          <td><?= $classement['id']; ?></td>
                   <?php } ?>

                    <?php
                       $req = $bdd->query("SELECT * FROM user WHERE user_id=.'$id_membre'.");
                       while($classement = $req->fetch()) {
                       $id_membre = echo $classement['id']; 
                   ?>
                          <td><?= $classement['id']; ?></td>
                   <?php } ?>

<script type="text/javascript">if(!$(document.body).hasClassName('process-template')){Rounder.init();}</script>
<script type="text/javascript">if(!$(document.body).hasClassName('process-template')){Rounder.init();}</script>
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
Je vais essayer en intégrant la colonne pseudo dans user_sats
je croisD: je me perd ca fait lgt x)
Lol je pense que tes pas le seul :) met sinon y'a moyen de l'adapter car tu ma mis plusieurs td alors qu'il y'en n'a qu'un je te screen mon code que j'ai adaptée:

Code:
<div id="column5" class="column">
<div class="habblet-container">
<div class="cbb clearfix red" style="width:240px">
<h2 class="title">Winwins
</h2>
<div class="box-content">
<div class="tableborder">
<table cellpadding="4" cellspacing="0" width="100%">
<?php
$req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 20");
while($classement = $req->fetch()) {
$id_membre = echo $classement['id'];
?>
<?php
$req = $bdd->query("SELECT * FROM users WHERE id=.'$id_membre'.");
while($classement = $req->fetch()) {
$id_membre = echo $classement['id'];
?>

<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=PLUTARD"><?= $classement['id']; ?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php } }?>
</table>
</div>
</div>
</div>
</div>
<script type="text/javascript">if(!$(document.body).hasClassName('process-template')){Rounder.init();}</script>
<script type="text/javascript">if(!$(document.body).hasClassName('process-template')){Rounder.init();}</script>
</div>

Avec le tiens ce qui donne aussi une erreur: Parse error: syntax error, unexpected 'echo' (T_ECHO) in /home/u524274***/public_html/classement.php on line 134
 

Louki

Ancien staff
Inscription
12 Mars 2021
Messages
7 536
Réactions
4 583
Points
10 116
Vire le "echo"

et la, vire la ligne $id_membre elle sert à rien.

Capture d’e*cran 2016-03-24 a* 18.19.41.png
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
Vire le "echo"

et la, vire la ligne $id_membre elle sert à rien.

Voir la pièce jointe 85577
Voila ce que sa donne:
Code:
<?php
$req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 20");
while($classement = $req->fetch()) {
?>
<?php
$req = $bdd->query("SELECT * FROM users WHERE id =.'$id_membre'.");
while($classement = $req->fetch()) {
?>
<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $classement['username'];?>"><?= $classement['id']; ?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php } }?>

Et encore l'erreur: Fatal error: Call to a member function fetch() on a non-object in/home/u524274***/public_html/classement.phpon line 137
 

Louki

Ancien staff
Inscription
12 Mars 2021
Messages
7 536
Réactions
4 583
Points
10 116
Voila ce que sa donne:
Code:
<?php
$req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 20");
while($classement = $req->fetch()) {
?>
<?php
$req = $bdd->query("SELECT * FROM users WHERE id =.'$id_membre'.");
while($classement = $req->fetch()) {
?>
<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $classement['username'];?>"><?= $classement['id']; ?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php } }?>

Et encore l'erreur: Fatal error: Call to a member function fetch() on a non-object in/home/u524274***/public_html/classement.phpon line 137
Remplace les deux Fetch par :

fetch(PDO::FETCH_ASSOC);

exemple :

while($classement = $req->fetch(PDO::FETCH_ASSOC)) {
 

Louki

Ancien staff
Inscription
12 Mars 2021
Messages
7 536
Réactions
4 583
Points
10 116
Tjr rien et j'en fait quoi de sa ? $req = $bdd->query("SELECT * FROM users WHERE id =.'$id_membre'.");
car y'a pas de $id_membre.
:d:

PHP:
<?php
$req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 20");
while($classement = $req->fetch(PDO::FETCH_ASSOC)) {
$id_membre = $classement['id'];
?>
<?php
$req = $bdd->query("SELECT * FROM users WHERE id =.'$id_membre'.");
while($classement = $req->fetch(PDO::FETCH_ASSOC)) {
?>
<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $classement['username'];?>"><?= $classement['id']; ?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php } }?>

:d:
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
:d:

PHP:
<?php
$req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 20");
while($classement = $req->fetch(PDO::FETCH_ASSOC)) {
$id_membre = $classement['id'];
?>
<?php
$req = $bdd->query("SELECT * FROM users WHERE id =.'$id_membre'.");
while($classement = $req->fetch(PDO::FETCH_ASSOC)) {
?>
<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $classement['username'];?>"><?= $classement['id']; ?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php } }?>

:d:
Erreur: Fatal error: Call to a member function fetch() on a non-object in/home/u524274926/public_html/classement.phpon line 138
Ma ligne 138: while($classement = $req->fetch(PDO::FETCH_ASSOC)) {
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 706
Réactions
8 492
Points
32 425
<?php

$req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 0,20");
while($classement = $req->fetch(PDO::FETCH_ASSOC)) {
$rTest = $bdd->prepare('SELECT * FROM users WHERE id = ?');
$rTest->execute(array($classement['id']));
$pseudo = $rTest->fetch()['username'];

?>
<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $pseudo['username'];?>"><?= $classement['id']; ?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php
}
?>

ça marche ou pas ça ? Change le nom de la table ou du champs dans la table si c'est pas le bon nom ^^
Je suis pas sûr de moi là x)
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
<?php

$req = $bdd->query("SELECT * FROM user_stats ORDER BY id DESC LIMIT 0,20");
while($classement = $req->fetch(PDO::FETCH_ASSOC)) {
$rTest = $bdd->prepare('SELECT * FROM users WHERE id = ?');
$rTest->execute(array($classement['id']));
$pseudo = $rTest->fetch()['username'];

?>
<tr>
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $pseudo['username'];?>"><?= $classement['id']; ?></a></td>
<span style="float:right"><?php echo $classement['AchievementScore'];?></span>
</tr>
<?php
}
?>

ça marche ou pas ça ? Change le nom de la table ou du champs dans la table si c'est pas le bon nom ^^
Je suis pas sûr de moi là x)
Les points s'affiche bien met le pseudo non.
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $pseudo['username'];?>"><?= $classement['username']; ?></a></td> (Le pseudo ne s'affiche pas)

<div id="tab" style="font-size:11px"><a href="info.php?pseudo=<?php echo $pseudo['is'];?>"><?= $classement['id']; ?></a></td> (L'id s'affiche).
 
Haut