Demande d'aide PHP

Ce topic a été résolu
TrecKo

TrecKo Le 5 mai 2016 à 20:15 (Édité le 25 janvier 2019 à 17:51)

Bonjour à tous !

Je vous explique mon problème, donc voilà j'ai un système d'article et de commentaires, les commentaires sont affichés en bas de l'article et j'aimerai que quand une personne gradé poste un commentaire la couleur de son pseudo soit orange et que quand c'est un utilisateur non gradé, le pseudo est gris.

Merci de votre compréhension.
MisterTakaashi

MisterTakaashi Le 6 mai 2016 à 02:01

Hello,

Dans dans premier temps, est ce que ta base de données contient un champs grade, rang ou quelque chose comme ça.
Si c'est le cas, pourquoi ne pas utiliser une petite ternaire: 

<span class="rang <?= ($user->Rang == 99) ? "dev" : "" ?>"<?= $user->Pseudo ?></span>
Je ne connais pas ta structure après, je lance l'idée comme ça 😉

Cordialement,
MisterTakaashi
TrecKo

TrecKo Le 6 mai 2016 à 14:53

Pour mieux expliquer, dans ma base de donnée, j'ai une table qui s'appelle "membres" et dans cette table il y a une colonne qui se nomme "rang", donc après pour différencier les rangs je le fait avec PHP. Donc dans la colonne rang je met soit 1 ( utilisateur normal ), 2 ( Journaliste ) et 3 ( Administrateur ). Donc dans la colonne rang c'est que une chiffre qui est indiquer après moi sur mon site pour savoir quel poste j'ai utiliser sa : 
<?php if($user->rang == 3){ echo "Administrateur"; } if($user->rang == 2){ echo "Journaliste"; } if($user->rang == 1){ echo "Membre"; } ?>
Après j'ai créer un système d'article mais également un système pour commenter l'article, mais j'aimerai que par exemple si c'est un utilisateur gradé 2 ( Journaliste ), la couleur de son pseudo est orange et que si l'utilisateur est gradé 1 ( Membres ) son pseudo s'affiche en gris ( couleur d'origine ), voici ci-dessous mon code pour afficher le pseudo de la personne qui poste le commentaire :
<div style="font-size: 16px; color: #666; margin-left: 20px; margin-top: 10px; display: inline-block;"><strong><?php echo $req2->pseudo;?></strong></div><br />
Donc voilà en gros mon système, si vous pouvez m'aider sa serrai gentil 😀

PS : Je n'est pas compris le système que tu m'as donner..

Cordialement, Impulsion
BeKidding

BeKidding Le 6 mai 2016 à 14:58 (Édité le 6 mai 2016 à 14:59)

Même modèle dans ce cas la 
<div style="font-size: 16px; color: <?php if($user->rang == 3){ echo '#TA COULEUR ADMIN';} else{echo '#666';} ?>; margin-left: 20px; margin-top: 10px; display: inline-block;"><strong><?php echo $req2->pseudo;?></strong></div><br />
MisterTakaashi

MisterTakaashi Le 6 mai 2016 à 15:05

Hello,

En réalité, mon principe repose sur des classes CSS plutôt que mettre les couleurs directement en Code HTML. Sinon, cela fonctionne exactement de la même facon:
<?= (condition) ? "Je suis valide" : "Je ne suis pas valide" ?>
Ceci est une ternaire, ça permet tout simplement d'écrire en une ligne:
<? 
if (condition){
   echo("Je suis valide");
}else{
   echo("Je ne suis pas valide");
}
?>
Mettre le style directement dans les balises DIV n'est pas une très très bonne pratique (Je le fais aussi souvent quand j'ai la flemme 😉). De plus pour le coup ça ne te facilite pas vraiment la vie.

Mais bon, la solution de BeKidding est tout à fait valable 😉

Si tu veux plus de détails, n'hésite pas 😀
BeKidding

BeKidding Le 6 mai 2016 à 15:14

En effet la tienne est plus pratique si on veux changer ce code couleur dans plusieurs pages sans devoir s'ennuyer 😀
Sinon pareil je faisait souvent cette technique de flemmard mais j'ai trouvé une alternative (Après c'est pas le même truc que lui ) ->

MisterTakaashi

MisterTakaashi Le 6 mai 2016 à 15:17

Pas bête effectivement, et puis d'après ce que je vois, ça peut te permettre de faire un peu de multilignue, sans passer par des solutions comme I18N 😀
BeKidding

BeKidding Le 6 mai 2016 à 15:18

En effet ^^
TrecKo

TrecKo Le 6 mai 2016 à 15:38

BeKidding le code que tu m'as passer je l'avait déjà tester ^^ Enfaîte sa fait, si l'utilisateur est rank 3 il verra ce que j'ai mis dans mon code mais si un utilisateur n'est pas connecté sa ne fait rien, moi je veut que la couleur du membre gradé reste même quand nous sommes pas connecté, chose qui ne marche pas avec le code que tu m'as passer ^^
BeKidding

BeKidding Le 6 mai 2016 à 15:44 (Édité le 6 mai 2016 à 15:44)

Ah beh non c'est ta requête qui n'est pas bonne ...
Il fait que tu mette par exemple a la place de $user la requete que tu utilise pour afficher ton commentaire , avatar , etc...
TrecKo

TrecKo Le 6 mai 2016 à 15:48 (Édité le 6 mai 2016 à 16:17)

Regarde mon code entier pour afficher les commentaires :
      <?php
         $sql2 = $BDD->prepare("SELECT * FROM commentaires WHERE id_a = ? ORDER by id desc limit 20");
         $sql2->execute(array($core->Get($_GET['id'])));
         while($req2 = $sql2->fetch(PDO::FETCH_OBJ)){
         $parser = new JBBCode\Parser();
         $parser->addCodeDefinitionSet(new JBBCode\DefaultCodeDefinitionSet());
      ?>
         <div style="height:auto; margin-bottom: 5px;" id="forum">
            <div id="avatar" style="float: left;background: #3AADDA url('https://avatar-retro.com/habbo-imaging/avatarimage?figure=<?php echo $req2->look;?>&direction=2&head_direction=2&gesture=sml') -2px -7px; background-repeat: no-repeat;"></div>
            <div style="font-size: 16px; color: #666; margin-left: 20px; margin-top: 10px; display: inline-block;"><strong><?php echo $req2->pseudo;?></strong></div><br />
            <div style="font-size: 13px; color: #666; margin-left: 20px; display: inline-block;"><?php $parser->parse($req2->msg); echo $parser->getAsHtml();?></div>
         </div>
         <div style="margin-top: 10px;margin-bottom: 10px;border-bottom: 2px dotted rgba(0,0,0,.1);"></div>
      <?php } ?>
Si vous pouvez m'aider 😀
BeKidding

BeKidding Le 6 mai 2016 à 17:24 (Édité le 6 mai 2016 à 17:25)

Essaie ceci :
     <?php
         $sql2 = $BDD->prepare("SELECT * FROM commentaires WHERE id_a = ? ORDER by id desc limit 20");
         $sql2->execute(array($core->Get($_GET['id'])));
         while($req2 = $sql2->fetch(PDO::FETCH_OBJ)){
             $req3 = $BDD->prepare('SELECT * FROM utilisateurs WHERE pseudo = ?');
             $req3->execute(array($req2->pseudo));
             $req3 = $req3->fetch(PDO::FETCH_OBJ);
             $rank = $req3->rang;
         $parser = new JBBCode\Parser();
         $parser->addCodeDefinitionSet(new JBBCode\DefaultCodeDefinitionSet());
      ?>
         <div style="height:auto; margin-bottom: 5px;" id="forum">
            <div id="avatar" style="float: left;background: #3AADDA url('https://avatar-retro.com/habbo-imaging/avatarimage?figure=<?php echo $req2->look;?>&direction=2&head_direction=2&gesture=sml') -2px -7px; background-repeat: no-repeat;"></div>
            <div style="font-size: 16px; color: <?php if($rank == 3){ echo "#C62828"; } else { echo "#666";} ?>; margin-left: 20px; margin-top: 10px; display: inline-block;"><strong><?php echo $req2->pseudo;?></strong></div><br />
            <div style="font-size: 13px; color: #666; margin-left: 20px; display: inline-block;"><?php $parser->parse($req2->msg); echo $parser->getAsHtml();?></div>
         </div>
         <div style="margin-top: 10px;margin-bottom: 10px;border-bottom: 2px dotted rgba(0,0,0,.1);"></div>
      <?php } ?>
lecteursdb

lecteursdb Le 6 mai 2016 à 17:39

salut!
j'ai pas un pb en php à proprement parler...juste quelque chose qui me tracasse depuis un bon bout. j'ai un site en ligne il est presque terminé...je souhaite installer avec lui un module qui requiert que le mod_rewrite soit activé sur mon serveur...j'ai essayé tout ce que je pouvais mais j'y suis pas parvenu...svp avez-vous quelque chose à me suggerer sur comment activer ? mon hébergeur c'est plesk...cordialement
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte