Hello tout le monde',

Je reviens vers vous car j'ai un soucis que je n'arrive pas a resoudre avec les objets.
En gros j'ai un système de rang sur mon forum et jusqu'a maintenat j'arrive a les afficher en faisant une boucle sur des INI.
En gros dans ma base de données il y a une table rang qui ne peut contenu que 5 chiffres (0 a 4).
0 = Banni, 1 = Onscrit ect...
Mais il y a quelque temps qj'ai commencé les cours de POO et j'ai mis en place une liste des membres sur mon forum que j'aimerai que les nombre se trouvant dans la base de données soient du style "Admin, Modo" etc...
Avant je faisait un tableu associatif en utilisant une boucle apres.

Mais là ca ne fonctionne pas.
Il y aurait une solution s'il vous plait ?
Merci beaucoup !!!

4 réponses


SLK
Réponse acceptée

Par contre fais en plutôt une fonction, que tu utilisera partout sur ton site.
Sinon ça risque d'être galère à maintenir s'il faudra changer un truc un jour, alors que tu l'a affiché à plusieurs endroits.

<?php
function translateRank($rank)
{
    if ($rank == 0)     { return '<span class="label label-danger">Banni</span>'; }
    elseif ($rank == 1) { return '<span class="label label-info">Visiteur</span>'; }
    elseif ($rank == 2) { return '<span class="label label-success">Membre</span>'; }
    elseif ($rank == 3) { return '<span class="label label-primary">Modo</span>'; }
    else                { return '<span class="label label-accent">Admin</span>'; }
}

-- TABLE --
    -- BOUCLE While--
        <td>
            echo translateRank($donnees->membre_rang);
        </td>
    -- FIN BOUCLE --
-- FIN TABLE--
?>

Salut,

Avant je faisait un tableu associatif en utilisant une boucle apres.
Mais là ca ne fonctionne pas.

J'imagine qu'on peut toujours se débrouiller pour que ça fonctionne.

On pourrait se dire qu'on garde la base de données actuelle,
c'est à dire avec la table qui à un champ "rank" dont les valeurs sont 0, 1, 2, 3, 4.
On créerait une fonction PHP : translateRank($number), un truc comme ça.
Qui retournerai une string définie en dur dans la fonction, quand on lui passe un int entre 0 et 4.
Et rajouter d'autres fonctions du même style en fonction de tes besoins.

Ou alors,
on pourrait, dans la table, rajouter un champ : "rank_string" et renommer l'ancien champ pour "rank_int".
Il faudra modifier les fonctions qui manipulent cette table, pour correspondre aux nouveaux champs

Soulouf
Auteur

C'est une super bonne idée ! :D
Il m'est parvenu une autre idée ce matin (je ne sais pas du tout pourquoi je n'y avait jamais pensé) c'est de mettre dans la boucle, dans la partie ou je souhaite afficher les rangs de chaque membre un truc du genre.

-- TABLE --
-- BOUCLE While--
<td>
                                        <?php
                                        if ($donnees->membre_rang == 0){ echo '<span class="label label-danger">Banni</span>'; }
                                        elseif ($donnees->membre_rang == 1){ echo '<span class="label label-info">Visiteur</span>'; }
                                        elseif ($donnees->membre_rang == 2){ echo '<span class="label label-success">Membre</span>'; }
                                        elseif ($donnees->membre_rang == 3){ echo '<span class="label label-primary">Modo</span>'; }
                                        elseif ($donnees->membre_rang == 4){ echo '<span class="label label-accent">Admin</span>'; }
                                        ?>
                                    </td>
-- FIN BOUCLE --
-- FIN TABL E--

Merci beaucoup pour ta réponse ! =)

Soulouf
Auteur

Haaa merci beaucoup !!! Encore une fois je n'y avais meme pas pensé !
Tu m'as enormement aider, encore merci !