nummers veranderen in namen

Status
Niet open voor verdere reacties.

Martijn31

Gebruiker
Lid geworden
6 sep 2009
Berichten
362
Hallo helpmij,

Ik ben bezig met de opmaak van mijn site, en nu heb ik een vraagje over een kleine code
de code is:

[sql] Jou rank is op dit moment: <strong><?php echo $user->user("rank")?></strong><br>[/sql]

De ranks gaan van 1 tm 7

als ik nu die code plaats komt er de nummer van mijn rank te staan in mijn geval 7
nu is mijn vraag kan ik die nummers veranderen in namen?
dat er ipv die 7 automatisch Administrator komt te staan?
dat is voor de gebruikers van mijn site namelijk een stukje makkelijker
6 is moderator dus dan moet er moderator komen te staan..
ik hoop dat jullie begrijpen wat ik bedoel

BVD

-Martijn31
 
Je kunt een simpele functie maken in PHP misschien?

PHP:
get_rank_text( $rank ) {
  if ( $rank == 1 ) {
    return 'lid';
  } 
  elseif ( $rank == 2 ) {
    return 'speciaal lid';
  }
  ... etc
  elseif ( $rank == 7 ) { 
    return 'administrator';
  }
}

Als je dat een keer defineert, kun je daarna overal in je code gewoon dit doen:

PHP:
 echo get_rank_text ( $user->user("rank") );
 
Je kunt ook een nieuwe tabel maken in SQL met de velden "rang" en "beschrijving", en die koppelen op je andere tabel:

[sql]
SELECT gebruiker.naam, rang.rang_nummer, rang.rang_beschrijving
FROM gebruiker
INNER JOIN rang ON rang.rang_nummer = gebruiker.rang_nummer
[/sql]
 
Maar waar plaats ik dit dan:

PHP:
 get_rank_text( $rank ) {
  if ( $rank == 1 ) {
    return 'lid';
  } 
  elseif ( $rank == 2 ) {
    return 'speciaal lid';
  }
  ... etc
  elseif ( $rank == 7 ) { 
    return 'administrator';
  }
}

?
 
Aangezien dit een SQL-topic is geef ik ook maar een SQL-optie, niets wetende van PHP...

[SQL]SELECT CASE WHEN rank = 7 THEN 'Administrator' ELSE
CASE WHEN rank = 1 THEN 'Bla bla' ELSE 'etc' END
FROM tabel.[/SQL]

Nadeel daarvan is wel dat het statisch geimplementeerd is: overal waar je dit wil gebruiken moet je het opnieuw definieren en mocht er een keer wat wijzigen dan moet je dat dus ook overal in de code doen. Wat dat betreft is een extra tabel een veel mooiere optie.
 
Je plaatst de functie ergens in <?php ?> tags op een php pagina en roept hem aan met het nummer dat je terugkrijgt uit de user-functie.

In jouw geval zou dit al volstaan:
PHP:
<?php
get_rank_text( $rank ) {
  if ( $rank == 1 ) {
    return 'lid';
  } 
  elseif ( $rank == 2 ) {
    return 'speciaal lid';
  }
  ... etc
  elseif ( $rank == 7 ) { 
    return 'administrator';
  }
}
?>

Jou rank IS op dit moment:       <strong><?php echo get_rank_text($user->user("rank"))?></strong><br>

EDIT: De get_rank_text functie is nog niet af, je moet hem aanvullen waar ... etc staat, anders geeft je code een error
 
Laatst bewerkt:
Heey

Ik heb gedaan wat jij zegt alleen hij blijft een erroor aangeven..

code is:
PHP:
 <?php
  get_rank_text( $rank ) 
  if ( $rank == 1 ) {
    return 'lid;
  } 
  elseif ( $rank == 2 ) {
    return 'clublid';
  }
  elseif ( $rank == 3 ) { 
    return 'mini eXpert';
  }
  elseif ( $rank == 4 ) { 
    return hobba;
  }
  elseif ( $rank == 5 ) { 
    return 'eXpert';
  }
  elseif ( $rank == 6 ) { 
    return 'Moderator';
  }
  elseif ( $rank == 7 ) { 
    return 'Administrator';
  }
}
?>
Jou rank IS op dit moment:       <strong><?php echo 

get_rank_text($user->user("rank"))?></strong><br>

hij geeft de volgende error:

Parse error: syntax error, unexpected '{' in /usr/home/deb23765/domains/sitenaam.nl/public_html/martijnalders/t4.php on line 44

Line 44 begint met:

PHP:
 get_rank_text( $rank )

iemand die het weet op te lossen?

bvd

- Martijn31
 
Laatst bewerkt:
Werp eens een goede blik op je post, de code highlighting geeft heel duidelijk aan waar de fout zit ;)

Hetzelfde zou gelden als je een goeie code editor zou gebruiken, die geven dat ook gewoon aan. Waarin ben je je PHP aan het schrijven?
 
ik was het in notepad ++ aan het doen
maar zoals je weet ik ben een noobie met die code's
ik zou echt niet weten waar de fout zit...
 
Dan is dit een goed moment om te leren ;)

Kijk eens naar de kleuren van de editor, en of alle haakjes en aanhalingstekens wel goed geopend en gesloten worden.
 
hij mist ergens { maar ik weet niet waar ik hem moet plaatsen :'(

Ik heb de code nu tot zover aangepast

PHP:
 <?php

  get_rank_text( $rank ){ 
  if ( $rank == 1 ) {
    return 'lid';
  } 
  elseif ( $rank == 2 ) {
    return 'clublid';
  }
  elseif ( $rank == 3 ) { 
    return 'mini eXpert';
  }
  elseif ( $rank == 4 ) { 
    return 'hobba';
  }
  elseif ( $rank == 5 ) { 
    return 'eXpert';
  }
  elseif ( $rank == 6 ) { 
    return 'Moderator';
  }
  elseif ( $rank == 7 ) { 
    return 'Administrator';
  }
}
?> 
Jou rank IS op dit moment:       <strong><?php echo get_rank_text($user->user("rank"))?></strong><br>
 
Laatst bewerkt:
*knip*

(had niet gezien dat je het missende quotje al had toegevoegd, dus mijn reactie was onzinnig)
 
Laatst bewerkt:
ik heb de code nog eens opnieuw gedaan nog steeds de error..

Wat bedoelt frats dan met defineert?
mischien is het dat? ik ga nu alles af..

De code is nu trouwens:
PHP:
 <?php

 get_rank_text( $rank ) {
  elseif ( $rank == 1 ) {
    return 'lid';
  } 
  elseif ( $rank == 2 ) {
    return 'Clublid';
  }
  elseif ( $rank == 3 ) { 
    return 'mini eXpert';
  }
  elseif ( $rank == 4 ) { 
    return 'hobba';
  }
  elseif ( $rank == 5 ) { 
    return 'eXpert';
  }
  elseif ( $rank == 6 ) { 
    return 'Moderator';
  }
  elseif ( $rank == 7 ) { 
    return 'Administrator';
  }
}
?>
Jou rank IS op dit moment:       <strong><?php echo get_rank_text($user->user("rank"))?></strong><br>
 
Laatst bewerkt:
is er niet iemand die gewoon even kan zeggen waar de fout(en) zitten?
ik kan het echt niet vinden en ik heb al heel veel geprobeert...
 
Wat gaat er nu nog fout dan?

Zoals jij het voorbeeld nu post, zou het moeten werken.

Defineren betekend gewoon dat als je een functie wilt gebruiken, je ergens neer moet zetten hoe de functie werkt. Dat stuk wat je net gemaakt hebt is de inhoud van de functie; die geeft dus aan wat er moet gebeuren iedere keer als de parser een aanroep naar get_rank_text() krijgt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan