Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: lecteursdb, MisterTakaashi
Ce topic a été résolu
Auteur Sujet: Demande d'aide PHP

TrecKo

Messages: 23

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.
Publicité

MisterTakaashi

Messages: 3

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 Clin d'oeil

Cordialement,
MisterTakaashi

TrecKo

Messages: 23

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 Sourire

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

Cordialement, Impulsion

BeKidding

Messages: 75

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

Messages: 3

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 Clin d'oeil). De plus pour le coup ça ne te facilite pas vraiment la vie.

Mais bon, la solution de BeKidding est tout à fait valable Clin d'oeil

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

BeKidding

Messages: 75

En effet la tienne est plus pratique si on veux changer ce code couleur dans plusieurs pages sans devoir s'ennuyer Sourire
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

Messages: 3

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 Sourire

BeKidding

Messages: 75

En effet ^^

TrecKo

Messages: 23

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

Messages: 75

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

Messages: 23

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 Sourire

BeKidding

Messages: 75

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

Messages: 41

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


Veuillez vous connecter ou créer un compte pour poster une réponse