Page 1 sur 1

Affichage statut des membres

Posté : 06 sept. 2018, 14:02
par bibou51
Bonjour,
J'ai besoin d'un peu d'aide s'il vous plait.
Avec un peu de persévérance, j'ai réussi a afficher l'avatar, le pseudo et les euros en compte pour le membre mais je n'arrive pas a afficher son niveau vip.
Donc si quelqu'un pouvait m'aider et m'expliquer en même temps ce serait sympa surtout que j'ai beaucoup cherché avant de poster cette demande d'aide.
Même si ça peut paraître simple, ça ne l'ai pas pour moi qui est en train d'apprendre a coder.
Merci d'avance.


<?php
define('include',NULL);
include('core.php');

if (!isset($_SESSION['membre']) || $_SESSION['connect'] != true) {
header('Location: /compte/login');
die();
}

$nompage = 'Page de Paiement';
$descpage = 'demande de paiement';
include('header.php');
include('sidebar.php');


$sqlinfos = $db->prepare('SELECT pseudo, date, credits, avatar, visites, visitesjour, surf, creditsjour, clicsjour, progress, niveau, euros, statut FROM membres WHERE id = :id');
$sqlinfos->execute(array(':id' => $_SESSION['membre']));
$infos = $sqlinfos->fetch(PDO::FETCH_OBJ);

$sqlinfos2 = $db->prepare('SELECT titre FROM statuts WHERE id = :id');
$sqlinfos2->execute(array(':id' => $_SESSION['membre']));
$infos2 = $sqlinfos2->fetch(PDO::FETCH_OBJ);


echo '<h2 class="center">Demande De Paiement</h2><br />
<div class="topart center"><h3>Quand et comment demander un paiement ?</h3><img src="/theme/images/surf-remunere.png" with="256" height="197" att="promotion" /><br><img style="max-width:60px" src="'.$infos->avatar.'"><br><b>'.$infos->pseudo.'</b><br><br />Vous possédez : <b>'.$infos->euros.' €</b> sur votre compte.<br>Vous pouvez faire votre demande de paiement via paypal,<br>en fonction de votre statut : '.$infos2->titre.'<br><br>

<table class="table"><tbody><tr class="tr">
<td class="center"><strong>Statut :</strong></td><td><strong>Minimum Requis :</strong></tr>
<tr><td class="center">VIP 4</td><td>1€00</td></tr>
<tr><td class="center">VIP 3</td><td>2€00</td></tr>
<tr><td class="center">VIP 2</td><td>3€00</td></tr>
<tr><td class="center">VIP 1</td><td>4€00</td></tr>
<tr><td class="center">Membre Standard</td><td>5€00</td></tr>
</tbody></table><br>

<button type="button" class="btn" onclick="location.href=\'/contact\'">Demander<br />un paiement</button><br><br>
Comme sujet de contact, veuillez choisir : "Demande de paiement"<br>
<b>N\'oubliez pas d\'indiquer l\'adresse mail de votre compte paypal<br>ainsi que votre pseudo</b><br>Votre paiement sera envoyé dans les 30 jours suivant la date de la demande.</div><br /><div class="sidehead2"><div class="sidehead3"></div></div></div><br />
<br /><br />';

include('footer.php');
?>

Re: Affichage statut des membres

Posté : 06 sept. 2018, 15:43
par or 1
$sqlinfos2 = $db->prepare('SELECT titre FROM statuts WHERE id = :id');
$sqlinfos2->execute(array(':id' => $_SESSION['membre']));
c'est un identifiant de statut qu'il faut passer à cette requete, or c'est un identifiant de membre qui est passé.
possible qu'en passant $infos->statut, cela soit mieux.
à noter qu'il n'est pas nécessaire de faire 2 requêtes, une avec jointure suffit.

Re: Affichage statut des membres

Posté : 06 sept. 2018, 16:04
par bibou51
merci pour la réponse mais j'ai un peu de mal a comprendre.
en fait ça affiche bien un titre mais pas le bon car je suis admin et ça m'affiche "membre standard"
il faut donc que j'arrive a sélectionner le bon titre suivant qui est connecté peut-être un select ou un order je sais pas j'ai éssayé plein de truc mais ça marche pas.
ça saoûle un peu quand on débute....
(voici les différents titres possible)
VIP 4 VIP 3 VIP 2 VIP 1 Membre Standard et admin

Re: Affichage statut des membres

Posté : 06 sept. 2018, 17:57
par bibou51
En réfléchissant un peu, je crois que dès le début je n'ai pas été clair dans ma demande d'aide.
Ce n'est pas le statut que je veux afficher mais le titre.
Le statut se trouve dans la table membres et ça j'arrive à l'extraire sans problème mais ça renvoi un chiffre.
Ce que je cherche a faire c'est afficher le titre qui se trouve dans la table statuts et là ça doit me donner le bon titre suivant le membre qui est connecté.
c'est à dire : membre standard, vip1, vip2, vip3, vip4 ou admin.
J'ai essayé d'être le plus clair possible mais pas facile...mdr

Re: Affichage statut des membres

Posté : 06 sept. 2018, 21:58
par correlatif
Comme te l'a dit or 1 tu dois utilisé $infos->statut dans ta 2éme requête et ensuite trouvé la colonne correspondante. Ce n'est peut être pas la colonne "id" ?

Vérifie le chiffre renvoyé par $infos->statut et ensuite cherche dans la ligne "admin" de la table "statuts" la colonne ou ce chiffre correspond.

Re: Affichage statut des membres

Posté : 07 sept. 2018, 17:17
par bibou51
Bonjour,
j'ai vu que l'on pouvait mettre des conditions d'affichage avec IF mais ça veut pas marcher car je ne sais pas ou placer correctement le truc et peut-être aussi un problème de syntaxe

<?php
if ($statut = 10)
{
echo "Admin";
}
?>
et ainsi de suite pour chaque statut différent....
un petit coup de pouce serait le bien venu.

Re: Affichage statut des membres

Posté : 07 sept. 2018, 22:05
par correlatif
Ton Erreur se situe au niveau de $statut = 10

Tu dois faire une comparaison

http://php.net/manual/fr/language.opera ... arison.php

Ceci dit, si tu fais ce choix pour afficher tes titres, tu devras modifier ton code chaque fois que tu voudras ajouter un nouveau statut dans ta base de données. Alors que si tu récupères le titre via la base comme tu voulais le faire précédemment, tu n'auras pas de retouche à faire.

Re: Affichage statut des membres

Posté : 08 sept. 2018, 12:05
par bibou51
Bonjour,
Merci a tous pour votre aide, j'ai enfin trouvé la solution c'est juste que j'avais un peu de mal a comprendre.
$sqlinfos2 = $db->prepare('SELECT titre FROM statuts WHERE id = :id');
$sqlinfos2->execute(array(':id' => $infos->statut));
$infos2 = $sqlinfos2->fetch(PDO::FETCH_OBJ);

Re: [RESOLU] Affichage statut des membres

Posté : 08 sept. 2018, 13:59
par or 1
à noter qu'il n'est pas nécessaire de faire 2 requêtes, une avec jointure suffit.

c'est résolu mais loin d'être optimal.