---
title: "Visa level beroende på färdigheter"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/115418-visa-level-beroende-på-färdigheter"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Pike"
published: "2004-11-08T15:27:58.000Z"
updated: "2005-04-03T18:33:25.000Z"
replies: 24
views: 831
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/115418-visa-level-beroende-på-färdigheter"
---

# Visa level beroende på färdigheter

_Sida 1 av 2._

## #1 — Pike, 2004-11-08T15:27Z

Hej!
Jag och en kompis (Beere) håller på med ett slags online rollspel. I tabellen multopia finns id, username, password, sida, bild, liv, pengar, mod, styrka ock admin.
Det jag har fasnat på är hur men visar vilken "level" medlemmen är på. Alltså  har man 0-49 i mod och 0-49 i styrka så ska det stå: Joker. Har man 50-89 i styrka och 50-89 i mod så ska det stå: Stalledräng 
osv.

Jag har försökt med denna kod kod

```php
<?
if($rad['styrka'] == "30" & $rad['mod'] == "30") {
echo "Joker";
} elseif ($rad['styrka'] == "50" & $rad['mod'] == "50") {
echo "Stalledräng";
?>
```

 

Med den koden så blir attlting fel... Allt som står under koden syns inte på sidan? Och så måste man ha 30 eller 50 för att nåt ska synas... det står ingenting om man har tex. 33 i styrka eller nåt...

Hoppas ann någon kan hjälpa oss med det:OO

Permalänk: https://www.webforum.nu/p/115418

## #2 — Hansen, 2004-11-08T15:59Z

Vad ska det stå om man har 40 i mod och 80 i stryka?

Permalänk: https://www.webforum.nu/p/1477767

## #3 — Pike, 2004-11-08T16:09Z

joker.. eftersom man måste ha minst 50 i båda för att man ska vara stalledräng.. joker och stalledräng är ju som bara början på det hela så att nu fattar annars så är det här hela listan:
1\. Joker
2\. Stalledräng
3\. Väpnare
4\. Riddare
5\. Greve
6\. Kung

Permalänk: https://www.webforum.nu/p/1477776

## #4 — Hansen, 2004-11-08T16:20Z

```php
<?

printf( "%s\n", level( 30, 30 ) );
printf( "%s\n", level( 40, 80 ) );
printf( "%s\n", level( 50, 75 ) );
printf( "%s\n", level( 90, 90 ) );

function level( $styrka, $mod ) {

    if ( $styrka < 50 || $mod < 50 ) {
        return "Joker";
    }

    if ( $styrka < 90 || $mod < 90 ) {
        return "Stalledräng";
    }

    return "Undefined";
}

?>
```

Permalänk: https://www.webforum.nu/p/1477779

## #5 — Pike, 2004-11-08T17:04Z

nee... det funkade inte.. det står:
Fatal error: Call to undefined function: level()

Något är fel...

Permalänk: https://www.webforum.nu/p/1477798

## #6 — luna, 2004-11-08T17:09Z

Troligtvis så det fel i din jämförelse...

Borde det se ut så här:

```php
<?
if($rad['styrka'] == "30" && $rad['mod'] == "30") {
echo "Joker";
} elseif ($rad['styrka'] == "50"  && $rad['mod'] == "50") {
echo "Stalledräng";
?>
```

/R Tog bort försök till att göra & fetstilt...

Permalänk: https://www.webforum.nu/p/1477800

## #7 — Pike, 2004-11-08T17:17Z

var det tänkt att & skulle vara med **fet** text eller ska det vara så? om det ska vara så så är det något fel på if($rad\['styrka'\] == "30" **&**& $rad\['mod'\] == "30") {

Permalänk: https://www.webforum.nu/p/1477806

## #8 — Hansen, 2004-11-08T17:18Z

> **Pike skrev:**
>
> nee... det funkade inte.. det står:
> Fatal error: Call to undefined function: level()
> 
> Något är fel...

Då får du posta koden.

```
[b]mundus:~/dev/php chansen$ cat level.php[/b] 
<?
printf( "%s\n", level( 30, 30 ) );
printf( "%s\n", level( 40, 80 ) );
printf( "%s\n", level( 50, 75 ) );
printf( "%s\n", level( 90, 90 ) );

function level( $styrka, $mod ) {

    if ( $styrka < 50 || $mod < 50 ) {
        return "Joker";
    }

    if ( $styrka < 90 || $mod < 90 ) {
        return "Stalledräng";
    }

    return "Undefined";
}

?>
[b]mundus:~/dev/php chansen$ php level.php[/b] 
Joker
Joker
Stalledräng
Undefined
```

Permalänk: https://www.webforum.nu/p/1477809

## #9 — Pike, 2004-11-08T17:27Z

den hör koden använder jag till att visa profilen: 

```php
 <?
include "../data.php";
$link = mysql_connect("$host", "$user", "$pass");
$sql="SELECT * FROM multopia WHERE username='$username'";
$result = mysql_db_query("$db","$sql");
while($rad=mysql_fetch_array($result)){
?>
            </p>
            <p align="center"><img src="../bilder/<? echo $rad['bild']; ?>" width="140"></p>            <p><u>Statistik:</u></p>
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td><p align="center"><strong>Mod:</strong></td>
                <td><p align="center"><strong>Liv:</strong></td>
              </tr>
              <tr>
                <td><p align="center"><? echo $rad["mod"]; ?></td>
                <td><p align="center">                  <? echo $rad["liv"]; ?></td>
              </tr>
              <tr>
                <td><p align="center"><strong>Styrka:</strong></td>
                <td><p align="center"><strong>Pengar:</strong></td>
              </tr>
              <tr>
                <td><p align="center"><? echo $rad["styrka"]; ?>&nbsp;</td>
                <td><p align="center"><? echo $rad["pengar"]; ?>&nbsp;</td>
              </tr>
              <tr>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <td colspan="2"><p align="center">
<?
if($rad['styrka'] == "30" && $rad['mod'] == "30") {
echo "Joker";
} elseif ($rad['styrka'] == "50"  && $rad['mod'] == "50") {
echo "Stalledräng";
?>
```

Var det den koden du menade?

Permalänk: https://www.webforum.nu/p/1477821

## #10 — Hansen, 2004-11-08T17:33Z

Om du använder PHP 3 så måste funktionen vara definierad innan den används, testa med:

```php
<?
function level( $styrka, $mod ) {

    if ( $styrka < 50 || $mod < 50 ) {
        return "Joker";
    }

    if ( $styrka < 90 || $mod < 90 ) {
        return "Stalledräng";
    }

    return "Undefined";
}

printf( "%s\n", level( 30, 30 ) );
printf( "%s\n", level( 40, 80 ) );
printf( "%s\n", level( 50, 75 ) );
printf( "%s\n", level( 90, 90 ) );

?>
```

Permalänk: https://www.webforum.nu/p/1477828

## #11 — Pike, 2004-11-08T17:44Z

med det blir typ fel...:( 
det står bara: Joker Joker Stalledräng Undefined 
??

Permalänk: https://www.webforum.nu/p/1477839

## #12 — Hansen, 2004-11-08T18:01Z

> **Pike skrev:**
>
> med det blir typ fel...:( 
> det står bara: Joker Joker Stalledräng Undefined 
> ??

Det är ju rätt :o)

placera funktionen *level* överst i ditt script eller i en include fil.

ersätt:

```php
<?
if($rad['styrka'] == "30" && $rad['mod'] == "30") {
echo "Joker";
} elseif ($rad['styrka'] == "50"  && $rad['mod'] == "50") {
echo "Stalledräng";
?>
```

Med:

```php
<?
echo level( $rad['styrka'], $rad['mod'] );
?>
```

Permalänk: https://www.webforum.nu/p/1481019

## #13 — Pike, 2004-11-08T18:12Z

vänta... nu hängde inte jag med riktigt...
ska jag ha både

```php
<?
function level( $styrka, $mod ) {

    if ( $styrka < 50 || $mod < 50 ) {
        return "Joker";
    }

    if ( $styrka < 90 || $mod < 90 ) {
        return "Stalledräng";
    }

    return "Undefined";
}

printf( "%s\n", level( 30, 30 ) );
printf( "%s\n", level( 40, 80 ) );
printf( "%s\n", level( 50, 75 ) );
printf( "%s\n", level( 90, 90 ) );

?>
```

och 

```php
<?
echo level( $rad['styrka'], $rad['mod'] );
?>
```

och sen överst på sidan så ska jag ha include "vilken_fil?.php";

Permalänk: https://www.webforum.nu/p/1481023

## #14 — Hansen, 2004-11-08T18:24Z

```php
<?
include "../data.php";

function level( $styrka, $mod ) {

    if ( $styrka < 50 || $mod < 50 ) {
        return "Joker";
    }

    if ( $styrka < 90 || $mod < 90 ) {
        return "Stalledräng";
    }

    return "Undefined";
}

$link = mysql_connect("$host", "$user", "$pass");
$sql="SELECT * FROM multopia WHERE username='$username'";
$result = mysql_db_query("$db","$sql");
while($rad=mysql_fetch_array($result)){
?>
            </p>
            <p align="center"><img src="../bilder/<? echo $rad['bild']; ?>" width="140"></p>
            <p><u>Statistik:</u></p>
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td><p align="center"><strong>Mod:</strong></td>
                <td><p align="center"><strong>Liv:</strong></td>
              </tr>
              <tr>
                <td><p align="center"><? echo $rad["mod"]; ?></td>
                <td><p align="center">                  <? echo $rad["liv"]; ?></td>
              </tr>
              <tr>
                <td><p align="center"><strong>Styrka:</strong></td>
                <td><p align="center"><strong>Pengar:</strong></td>
              </tr>
              <tr>
                <td><p align="center"><? echo $rad["styrka"]; ?>&nbsp;</td>
                <td><p align="center"><? echo $rad["pengar"]; ?>&nbsp;</td>
              </tr>
              <tr>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <td colspan="2"><p align="center">
                    <? echo level( $rad['styrka'], $rad['mod'] ); ?>
```

Permalänk: https://www.webforum.nu/p/1481038

## #15 — Pike, 2004-11-08T20:02Z

Tack :D det funkade!

Permalänk: https://www.webforum.nu/p/1481073

## #16 — Pike, 2004-11-09T13:02Z

Men nu har jag en till liten fråga angöende liven... Om  man spelar en match mot någon så tappar man ju liv, men hur gör man så att livmätaren uppdateras varannan minut med +3? alltså om jag har 67 så måste jag vänta i 11 minuter innan jag har 100 igen. men mätaren ska inte gå över 100. 
Går det att göra? Det skulle vara snällt om någon hjälper :)

Permalänk: https://www.webforum.nu/p/1481337

## #17 — Snakes, 2004-11-09T22:29Z

1\. Glöm allt innan..... Kopiera alla filer du har så att du har backup om det här förstör nåt! (du behöver inte kopiera eller göra backup men för säkerhets skull)

2\. Det här måste du lägga längst upp i en sida som är inkluderad på alla sidor.... om du inte har en så gör en ny fil som heter functions.php och skriv in 

```php
include "functions.php";
```

 på ALLA sidor i hemsidan utan i functions.php såklart **ÄNDRA INGET I DETTA STEG KOPIERA OCH KLISTRA IN BARA**

```php
$ar=date("y"); //Året just nu
$mon=date("m"); //Månaden just nu
$dag=date("d"); //Dagen just nu  
$tim=date("H"); //Timmen just nu
$min=date("i"); //Minuten just nu
$minut=$min+2; //Minuten om två minuter
$tidennu=$ar."|".$mon."|".$dag."|".$tim."|".$min;  //tex 04|11|16|22|05
$tidenef=$ar."|".$mon."|".$dag."|".$tim."|".$minut;  //tex 04|11|16|22|07 notera att det blev 7 alltså + 2 min.
```

 
Det här ska vara längst upp i include filen!!

3\. Jag ändrade till funktion.... det blir mycket enklare för dig!**ÄNDRA INGET I DETTA STEG KOPIERA OCH KLISTRA IN BARA**

```php
function editlife($tidenurdb,$antallivnu,$tidenef,$tidennu,$vadfornot) {
  $tidnr=explode("|",$tidenurdb); // året,månaden osv delas upp
  $tidnr2=explode("|",$tidennu); // året,månaden osv delas upp
  $timomind=$tidnr[0].$tidnr[1].$tidnr[2].$tidnr[3].$tidnr[4];
  $timominn=$tidnr2[0].$tidnr2[1].$tidnr2[2].$tidnr2[3].$tidnr2[4];
  if($timomind < $timominn || $timomind == $timominn){
    if($antallivnu==100){  //om det blir 100 så plusar man inte på nåt
      $antalliv = $antallivnu;
      $tidenurdb2 = $tidenef;
    }else if($antallivnu==99){  //om det blir 99 så plusar man bara på 1
      $antalliv = $antallivnu + 1;
      $tidenurdb2 = $tidenef;
    }else if($antallivnu==98){  //om det blir 98 så plusar man bara på 2
      $antalliv = $antallivnu + 2;
      $tidenurdb2 = $tidenef;
    }else{  //om det blir under 98 så plusar man på 3
      $antalliv = $antallivnu + 3;
      $tidenurdb2 = $tidenef;
    }
  }else{
    $antalliv = $antallivnu;
    $tidenurdb2 = $tidenurdb;
  }
  if($vadfornot=="liv"){
    return $antalliv;
  }else if($vadfornot=="tid"){
    return $tidenurdb2;
  }
}
```

Det här läggs också i include filen... vart som helst bara det är under det som är ovan!

4\. Det här ska du skriva på ställen där du skriver ut livet och tiden!!

```php
//liv
echo editlife($rad["tiden"],$rad["liv"],$tidenef,$tidennu,"liv");
//tid
echo editlife($rad["tiden"],$rad["liv"],$tidenef,$tidennu,"tid");
```

5\. Livet måste du alltid UPPDATERA efter det här scriptet körs!!!!!!! 

```php
$rad["liv"] = editlife($rad["tiden"],$rad["liv"],$tidenef,$tidennu,"liv");
```

6\. Tiden måste du alltid UPPDATERA efter det här scriptet körs!!!!!!! 

```php
$rad["tiden"] = editlife($rad["tiden"],$rad["liv"],$tidenef,$tidennu,"tid");
```

 
**FÖRUTOM** när du skriver in tiden för första gången (tex när någon ny registrerar sig) då ska det se ut så här 

```php
$rad["tiden"] = $tidenef;
```

7\. Glöm inte att göra ett nytt fält i databasen som heter **tiden**

8\. Tror inte det finns mer!! Igen om det är nåt du inet förstår så skriv! Den funkar exakt som du vill!! 
PS: Testade och allt funkade!! Du behöver inte ändra på nåt i steg 2 eller 1. Om du gör så kanske den inte funkar!

Permalänk: https://www.webforum.nu/p/1481710

## #18 — Pike, 2004-11-10T15:17Z

det jag inte fattar är vart ska jag lägga in $tidenurdb ? Ska jag ändra strängen $tidenurdb till vad? Men jag ska lägga all kod som du skrev längs upp i dockumentet?

Permalänk: https://www.webforum.nu/p/1482051

## #19 — Snakes, 2004-11-11T01:57Z

Jag ändrade gå kolla

Permalänk: https://www.webforum.nu/p/1482383

## #20 — Draftracer3, 2004-11-11T04:05Z

OBS: fel tråd! Sorry!

Permalänk: https://www.webforum.nu/p/1482388

---

Tråden på webben: https://www.webforum.nu/amne/php/115418-visa-level-beroende-på-färdigheter  
Nästa sida: https://www.webforum.nu/amne/php/115418-visa-level-beroende-på-färdigheter/page2.md
