Rank kleur.
br3nd4n - 06/11/2008 14:11 (laatste wijziging 06/11/2008 14:22)
Nieuw 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 :
<?php
$color_array = array(
"admin" =>"#FF0000",
"moderator" =>"#006600",
"member" =>"#0000FF");
function RankKleur($user){
global $color_array;
$sql_kleur = mysql_query("SELECT id,username,rankname FROM users WHERE username='".$user."'");
$kleur = mysql_fetch_assoc($sql_kleur);
$user2 = $kleur['username'];
$status = $kleur['rankname'];
$resultaat = '<font style="color: '.$color_array[$status].'; font-weight: bold;">'.$user2.'</font></a>';
return $resultaat;
}
?>
<?php
"admin" => "#FF0000" ,
"moderator" => "#006600" ,
"member" => "#0000FF" ) ;
function RankKleur( $user ) {
$sql_kleur = mysql_query ( "SELECT id,username,rankname FROM users WHERE username='" . $user . "'" ) ; $user2 = $kleur [ 'username' ] ;
$status = $kleur [ 'rankname' ] ;
$resultaat = '<font style="color: ' . $color_array [ $status ] . '; font-weight: bold;">' . $user2 . '</font></a>' ;
return $resultaat ;
}
?>
Dit laat hellemaal niets zien, Weet iemand mischien een oplossing of een push in de juiste richting?
Alvast bedankt!
Greetz,
Brendan
edit
Aanroeping :
<?php
RankKleur(['admin'])
?>
<?php
RankKleur( [ 'admin' ] )
?>
17 antwoorden
Gesponsorde links
Martijn - 06/11/2008 14:16
Crew PHP
wat als je doet echo $status;, wat geeft dat weer?
sir_green - 06/11/2008 14:16 (laatste wijziging 06/11/2008 14:18)
PHP interesse
if ($kleur['rankname'] == "moderator") {
$color = "#FF0000";
}
$resultaat = '<font style="color: '.$color.'; font-weight: bold;">'.$user2.'</font></a>';
echo $resultaat;
if ( $kleur [ 'rankname' ] == "moderator" ) {
$color = "#FF0000" ;
}
$resultaat = '<font style="color: ' . $color . '; font-weight: bold;">' . $user2 . '</font></a>' ;
Martijn - 06/11/2008 14:18
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
Kr4nKz1n - 06/11/2008 14:19 (laatste wijziging 06/11/2008 14:25)
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?
br3nd4n - 06/11/2008 14:21
Nieuw lid
Zo dat is snel support hier, Bedankt alvast
En ik roep hem zo op :
<?php
RankKleur(['admin'])
?>
<?php
RankKleur( [ 'admin' ] )
?>
Kr4nKz1n - 06/11/2008 14:23
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.
br3nd4n - 06/11/2008 14:26
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.
Martijn - 06/11/2008 14:40
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
br3nd4n - 06/11/2008 14:41
Nieuw lid
<?php
RankKleur($resultaat[username])
?>
<?php
RankKleur( $resultaat [ username] )
?>
Zo ongeveer?? ( het leden systeem gebruikt [username] om een username op te vragen uit de database )
Kr4nKz1n - 06/11/2008 14:44 (laatste wijziging 06/11/2008 14:54)
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.
RankKleur($resultaat['username']);
RankKleur( $resultaat [ 'username' ] ) ;
Ik zou zoiets maken
<?php
$aColors = Array(
'admin' => "#FF0000",
'moderator' =>"#006600",
'member' =>"#0000FF");
function RankColor($iId){
global $aColors;
$qUser = Mysql_Query("SELECT username, rank FROM user WHERE id_user=".Mysql_Real_Escape_String($iId));
$qUse = Mysql_Fetch_Assoc($qUser);
return '<span style="color: '.$aColors[$qUse['rank']].'; font-weight: bold;">'.$qUse['username'].'</span>';
}
While($qUse = Mysql_Fetch_Assoc($qUsers))
{
echo 'Gebruikersnaam '.RankColor($qUse['id_user']);
}
?>
<?php
'admin' => "#FF0000" ,
'moderator' => "#006600" ,
'member' => "#0000FF" ) ;
function RankColor( $iId ) {
return '<span style="color: ' . $aColors [ $qUse [ 'rank' ] ] . '; font-weight: bold;">' . $qUse [ 'username' ] . '</span>' ;
}
{
echo 'Gebruikersnaam ' . RankColor
( $qUse [ 'id_user' ] ) ; }
?>
Of beter gezegd, zo
<?php
$aColors = Array(
'admin' => 'color: #00ccff; font-weight: bold;',
'moderator' => 'color: #00ffff; font-style: italic;',
'member' => 'color: #000000');
function RankColor($iId){
global $aColors;
$qUser = Mysql_Query("SELECT username, rank FROM user WHERE id_user=".Mysql_Real_Escape_String($iId));
$qUse = Mysql_Fetch_Assoc($qUser);
return '<span style="'.(Array_Key_Exists($qUse['rank'], $aColors) ? $aColors[$qUse['rank']] : 'color: #000000').'">'.$qUse['username'].'</span>';
}
While($qUse = Mysql_Fetch_Assoc($qUsers))
{
echo 'Gebruikersnaam '.RankColor($qUse['id_user']);
}
?>
<?php
'admin' => 'color: #00ccff; font-weight: bold;' ,
'moderator' => 'color: #00ffff; font-style: italic;' ,
'member' => 'color: #000000' ) ;
function RankColor( $iId ) {
return '<span style="' . ( Array_Key_Exists ( $qUse [ 'rank' ] , $aColors ) ?
$aColors [ $qUse [ 'rank' ] ] : 'color: #000000' ) . '">' . $qUse [ 'username' ] . '</span>' ; }
{
echo 'Gebruikersnaam ' . RankColor
( $qUse [ 'id_user' ] ) ; }
?>
br3nd4n - 06/11/2008 14:51
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 )
Function DisplayOnlineUsers()
{
$result = mysql_query("SELECT user_id, username FROM online WHERE user_id > 0 ORDER BY username");
$count = mysql_num_rows($result);
if ($count > 0){
while($n = mysql_fetch_object($result)){
$names[$n -> user_id] = $n -> username;
} // while
$i = 1;
foreach($names AS $key => $value)
{
if($i < $count){
$c = ", ";
}else
$c = "";
echo "<a href=\"profile.php?id=$key\">$value</a>" . $c;
$i++;
}
}
}
Function DisplayOnlineUsers( )
{
$result = mysql_query ( "SELECT user_id, username FROM online WHERE user_id > 0 ORDER BY username" ) ; if ( $count > 0 ) {
$names [ $n -> user_id ] = $n -> username ;
} // while
$i = 1 ;
foreach ( $names AS $key => $value )
{
if ( $i < $count ) {
$c = ", " ;
} else
$c = "" ;
echo "<a href=\" profile.php?id=$key \" >$value </a>" . $c ; $i ++;
}
}
}
Kr4nKz1n - 06/11/2008 14:56
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.
br3nd4n - 06/11/2008 15:08
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 :
While($qUse = Mysql_Fetch_Assoc($qUsers))
En het geen wat ik moest veranderen $value staat nu : Online lijst: RankColor(1)
Joost - 06/11/2008 16:34 (laatste wijziging 06/11/2008 17:07)
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
Gesponsorde links
Dit onderwerp is gesloten .