login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Rank kleur.

Offline br3nd4n - 06/11/2008 14:11 (laatste wijziging 06/11/2008 14:22)
Avatar van br3nd4nNieuw lid Goede middag sm leden,

Ik heb een vraag aan jullie, die ik zelf niet kan oplossen.
De vraag luid : Hoe kan ik mijn members een kleur geven via hun rank.

Bijvoorbeeld :

Ranks : Admin(rood),Moderator(groen),Member(blauw).
Dan moet bijv : pietje die de rank moderator heb in de database groen worden op de website.

Heb al verschillende dingen geprobeerd, Gezocht op het forum maar heb niks kunnen vinden!

Tot nu toe heb ik dit maar dat werkt voor geen meter :

  1. <?php
  2. $color_array = array(
  3. "admin" =>"#FF0000",
  4. "moderator" =>"#006600",
  5. "member" =>"#0000FF");
  6.  
  7. function RankKleur($user){
  8. global $color_array;
  9. $sql_kleur = mysql_query("SELECT id,username,rankname FROM users WHERE username='".$user."'");
  10. $kleur = mysql_fetch_assoc($sql_kleur);
  11. $user2 = $kleur['username'];
  12. $status = $kleur['rankname'];
  13. $resultaat = '<font style="color: '.$color_array[$status].'; font-weight: bold;">'.$user2.'</font></a>';
  14. return $resultaat;
  15. }
  16. ?>


Dit laat hellemaal niets zien, Weet iemand mischien een oplossing of een push in de juiste richting?

Alvast bedankt!

Greetz,
Brendan

edit
Aanroeping :
  1. <?php
  2. RankKleur(['admin'])
  3. ?>

17 antwoorden

Gesponsorde links
Offline Martijn - 06/11/2008 14:16
Avatar van Martijn Crew PHP wat als je doet echo $status;, wat geeft dat weer?
Offline sir_green - 06/11/2008 14:16 (laatste wijziging 06/11/2008 14:18)
Avatar van sir_green PHP interesse
  1. if ($kleur['rankname'] == "moderator") {
  2. $color = "#FF0000";
  3. }
  4. $resultaat = '<font style="color: '.$color.'; font-weight: bold;">'.$user2.'</font></a>';
  5. echo $resultaat;
Offline Martijn - 06/11/2008 14:18
Avatar van Martijn Crew PHP daz n beetje omslachtig, dan is wat ie nu heeft beter. Wat ik denk dat er gebeurd is dat er bv het net anders staat in je Database ofzo, of dat ie niemand selecteerd.

bovendien raad ik aan LIMIT 1 achter je query in je functie te zetten
Offline Kr4nKz1n - 06/11/2008 14:19 (laatste wijziging 06/11/2008 14:25)
Avatar van Kr4nKz1n Onbekend Hoe roep je de functie op? Functie ziet er aardig 'goed' uit.

Let op, lees goed niet netjes 
DeviourSoul schreef:
bovendien raad ik aan LIMIT 1 achter je query in je functie te zetten
Hoezo?
Offline br3nd4n - 06/11/2008 14:21
Avatar van br3nd4n Nieuw lid Zo dat is snel support hier, Bedankt alvast  

En ik roep hem zo op :
  1. <?php
  2. RankKleur(['admin'])
  3. ?>
Offline Kr4nKz1n - 06/11/2008 14:23
Avatar van Kr4nKz1n Onbekend Uhmz???

Je functie is zo gemaakt hij je als parameter een gebruikersnaam mee geeft. username='".$user."'

Dat wat jij doet is geen gebruikersnaam hoop ik.
Offline br3nd4n - 06/11/2008 14:26
Avatar van br3nd4n Nieuw lid Ja klopt, Hij moet de gebruikers naam laten zien en daarbij ook meteen de juiste kleur.

Moet in de aanroeping de gebruikersnaam staan dan?
Want in de aanroeping staat niet de gebruikersnaam, de rank naam wel.
Offline Abbas - 06/11/2008 14:35
Avatar van Abbas Gouden medaille

Crew .NET
Natuurlijk moet je bij de aanroep de gebruikersnaam meegeven. Je hebt het zelfs zo in je functie geschreven, je verwacht een 'user', dus dat is de naam he! 
Offline Martijn - 06/11/2008 14:40
Avatar van Martijn Crew PHP met limit zoekt ie toch niet meer verder zodra die een entry vind? naja, zeker als je zoekt op string, lijkt me dat niet iets raars
Offline br3nd4n - 06/11/2008 14:41
Avatar van br3nd4n Nieuw lid
  1. <?php
  2. RankKleur($resultaat[username])
  3. ?>


Zo ongeveer?? ( het leden systeem gebruikt [username] om een username op te vragen uit de database )
Offline Kr4nKz1n - 06/11/2008 14:44 (laatste wijziging 06/11/2008 14:54)
Avatar van Kr4nKz1n Onbekend Jij hebt die functie niet zelf geschreven hae?

Zo ja, dan snap je niet wat je zelf maakt.

En ik heb geen idee hoe je dat wilt opvragen, ligt er maar net aan welke variabelen naam je gebruikt.

Kan $resultaat z`n, maar ook wat anders.

En je moet nog single quotes gebruikt.

  1. RankKleur($resultaat['username']);


Ik zou zoiets maken
  1. <?php
  2. $aColors = Array(
  3. 'admin' => "#FF0000",
  4. 'moderator' =>"#006600",
  5. 'member' =>"#0000FF");
  6.  
  7. function RankColor($iId){
  8. global $aColors;
  9. $qUser = Mysql_Query("SELECT username, rank FROM user WHERE id_user=".Mysql_Real_Escape_String($iId));
  10. $qUse = Mysql_Fetch_Assoc($qUser);
  11. return '<span style="color: '.$aColors[$qUse['rank']].'; font-weight: bold;">'.$qUse['username'].'</span>';
  12. }
  13.  
  14. While($qUse = Mysql_Fetch_Assoc($qUsers))
  15. {
  16. echo 'Gebruikersnaam '.RankColor($qUse['id_user']);
  17. }
  18.  
  19. ?>
Of beter gezegd, zo
  1. <?php
  2. $aColors = Array(
  3. 'admin' => 'color: #00ccff; font-weight: bold;',
  4. 'moderator' => 'color: #00ffff; font-style: italic;',
  5. 'member' => 'color: #000000');
  6.  
  7. function RankColor($iId){
  8. global $aColors;
  9. $qUser = Mysql_Query("SELECT username, rank FROM user WHERE id_user=".Mysql_Real_Escape_String($iId));
  10. $qUse = Mysql_Fetch_Assoc($qUser);
  11. return '<span style="'.(Array_Key_Exists($qUse['rank'], $aColors) ? $aColors[$qUse['rank']] : 'color: #000000').'">'.$qUse['username'].'</span>';
  12. }
  13.  
  14. While($qUse = Mysql_Fetch_Assoc($qUsers))
  15. {
  16. echo 'Gebruikersnaam '.RankColor($qUse['id_user']);
  17. }
  18.  
  19. ?>
Offline br3nd4n - 06/11/2008 14:51
Avatar van br3nd4n Nieuw lid Heb het idd niet zel geschreven, Maatje van me heeft een stuk gedaan en ik een stuk.

Single quotes was ik even vergeten..
Maar zit nu nog steeds met het raadsel hoe moet ik het huidige who is online aanpassen zodat de username de juiste kleur krijgt.

( mischien handig code van who is online )
  1. Function DisplayOnlineUsers()
  2. {
  3. $result = mysql_query("SELECT user_id, username FROM online WHERE user_id > 0 ORDER BY username");
  4. $count = mysql_num_rows($result);
  5. if ($count > 0){
  6. while($n = mysql_fetch_object($result)){
  7. $names[$n -> user_id] = $n -> username;
  8. } // while
  9.  
  10. $i = 1;
  11.  
  12. foreach($names AS $key => $value)
  13. {
  14. if($i < $count){
  15. $c = ", ";
  16. }else
  17. $c = "";
  18. echo "<a href=\"profile.php?id=$key\">$value</a>" . $c;
  19. $i++;
  20. }
  21. }
  22.  
  23. }
Offline Kr4nKz1n - 06/11/2008 14:56
Avatar van Kr4nKz1n Onbekend Regel 18 hier boven, heb jij een link tag staan.

In plaats van $value zet je neer RankColor($key)

Als je gebruikt maakt van m`n scriptje bovenaan tenminste.
Offline br3nd4n - 06/11/2008 15:08
Avatar van br3nd4n Nieuw lid Heb je scriptje gebruikt, en $value verandert.

En toen kreeg ik dit te zien :

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in index.php on line 41

Op line 41 staat :
  1. While($qUse = Mysql_Fetch_Assoc($qUsers))


En het geen wat ik moest veranderen $value staat nu : Online lijst: RankColor(1)
Offline Kr4nKz1n - 06/11/2008 15:16 (laatste wijziging 06/11/2008 15:29)
Avatar van Kr4nKz1n Onbekend Dat klopt. En ik heb nu 1 tip.

Lees veel tutorials en download scriptjes en bewerk deze. Want wanneer iemand met zo`n vraag komt, slaat bij mij de knop om. 

Ik geef je een hint, dan kun je het zelf proberen op te lossen of hopen dat iemand anders het doet.

Waar is je SELECT query?

En waarom er RankColor() staat, is omdat je de quotes niet goed gebruikt.
Offline Joost - 06/11/2008 16:34 (laatste wijziging 06/11/2008 17:07)
Avatar van Joost PHP expert
DeviourSoul schreef:
met limit zoekt ie toch niet meer verder zodra die een entry vind? naja, zeker als je zoekt op string, lijkt me dat niet iets raars
Misschien gebruikt hij geen userid's en is de primary key de username ;) Dan is het niet nodig 

@Hieronder: Oja, zie het nu ook 
Offline Kr4nKz1n - 06/11/2008 16:37 (laatste wijziging 06/11/2008 17:51)
Avatar van Kr4nKz1n Onbekend Maar hij gebruikt wel user id`s zoals ik heb gezien, maar dan nog is er maar 1tje die die waarde heeft. Anders is je database/code gewoon fout.

Edit
Typo

Edit @ Mobil
@hierboven: Hehe 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.294s