Gå til innhold

Level up script


Anbefalte innlegg

Det jeg vil er at når man har kommet til $max, så skal den sende til databasen at brukeren skal en level opp

 

<?php

$username=$_SESSION['username'];

$query=mysql_query("SELECT * FROM users WHERE username='$username'");

$fetch=mysql_fetch_object($query);

 

$query1=mysql_query("SELECT * FROM user_info WHERE username='$username'");

$info=mysql_fetch_object($query1);

 

 

 

 

$currank=$fetch->rank;

$rankp = $fetch->rankpoints;

 

if ($currank == "Noob"){

$max = "500";

$old="0";

 

}

elseif ($currank == "Wannabe"){

$max = "1200";

$old="500";

 

}elseif ($currank == "Bråkmaker"){

$max = '1500';

$old="1200";

 

}elseif ($currank == "Gangster"){

$max = '2000';

$old="1500";

 

}elseif ($currank == "Hitman"){

$max = '3500';

$old="2000";

 

}elseif ($currank == "Mafia"){

$max = '5000';

$old="3500";

 

}elseif ($currank == "Boss"){

$max = '7000';

$old="5000";

 

}elseif ($currank == "Consiglieri"){

$max = '15000';

$old="7000";

 

}

 

elseif ($currank == "Don"){

$max = '75000';

$old="15000";

 

}

elseif ($currank == "Gudfar"){

$max = '200000';

$old="75000";

 

}elseif ($currank == "Co. Owner"){

$max = '17048';

$old="1";

}

elseif ($currank == "Owner"){

$max = '17048';

$old="1";

}

elseif ($currank == "Coder"){

$max = '17048';

$old="1";

}

elseif ($currank == "Administrator"){

$max = '17048';

$old="1";

}

elseif ($currank == "Head Moderator"){

$max = '17048';

$old="1";

}

elseif ($currank == "Moderator"){

$max = '17048';

$old="1";

}

elseif ($currank == "Pink JC"){

$max = '17048';

$old="1";

}

$percent = round($rankp, $max *100);

?>

 

 

har prøvd masse rart men får det ikke til :S

Lenke til kommentar
Videoannonse
Annonse

Har prøvd å tolke spørsmålet ditt noen ganger, men skjønner ikke helt hva du mener. Kan du utdype? Er det snakk om at hver gang du kommer til linjen hvor det står $max så ønsker du å kjøre en spørring? Eller er det en teller variabel du har glemt å legge ved her? PS: Det kan være en god ide å benytte <> kode taggene her på forumet.

Lenke til kommentar

Problemet er som følger. Når rankpoints har kommet til $max så skal man få en ny rank og rankbar skal starte på 0% igjen

 

så ja, når man kommer til linjen $max så skal det være en spørring

 

Poster en oppdatert kode

 

<?php
$retard1 = mysql_query("SELECT `rankpoints`, `rank` FROM `users` WHERE `username`='$username'");
while($retard = mysql_fetch_row($retard1)){
$rankp= $retard[0];
$currank= $retard[1];


}
if ($currank == "Noob"){
$max = "100";
$old="0";

}elseif ($currank == "Wannabe"){
$max = "200";
$old="100";

}elseif ($currank == "Bråkmaker"){
$max = '400';
$old="200";

}elseif ($currank == "Gangster"){
$max = '800';
$old="400";

}elseif ($currank == "Hitman"){
$max = '2509';
$old="800";

}elseif ($currank == "Ettersøkt kriminell"){
$max = '32000';
$old="2509";

}elseif ($currank == "Mafia"){
$max = '64000';
$old="32000";

}elseif ($currank == "Assasin"){
$max = '128000';
$old="64000";

}elseif ($currank == "Boss"){
$max = '256000';
$old="128000";

}elseif ($currank == "Consiglieri"){
$max = '512000';
$old="256000";

}elseif ($currank == "Don"){
$max = '1024000';
$old="512000";

}elseif ($currank == "Gudfar"){
$max = '2048000';
$old="1024000";
}

$percent = round((($rankp-$old)/($max-$old))*100, 2);
?>

Endret av Belthazor
Lenke til kommentar

Er ikke nødvendig med noen While løkke her når du uansett kun henter en rad, kan forenkles til f. eks dette:

$retard = mysql_fetch_row(mysql_query("SELECT `rankpoints`, `rank` FROM `users` WHERE `username`='$username'")))
$rankp= $retard[0];
$currank= $retard[1];

--

 

Det er vel bare å legge til en update sql? Noe i denne duren om jeg har forstått det riktig ...

$sql=sprintf("UPDATE `users`
             SET `rankpoints`=%d,
                 `rank`='%s' 
             WHERE `username`='%s'",
             $rankp,
             $new_rank_title,
             $username);

if (mysql_query($sql))
 echo "Update successful";
else
 echo "Updated failed";

// oppdatert beregning
// f. eks Bråkmaker med rankp = 225: (225-(400-200))/(400-200)*100 = 12,5%.
// 25 er 12,5% av 200, som er differansen mellom $old og $max for Bråkmaker
$percent = round(($rankp-($max-$old))/($max-$old)*100,2);

Lenke til kommentar

Må jeg da legge inn

 

$sql=sprintf("UPDATE `users`
             SET `rankpoints`=%d,
                 `rank`='%s' 
             WHERE `username`='%s'",
             $rankp,
             $new_rank_title,
             $username);

if (mysql_query($sql))
 echo "Update successful";
else
 echo "Updated failed";

 

 

for eksempel.

if ($currank == "Noob"){
$max = "100";
$old="0";
$sql=sprintf("UPDATE `users`
             SET `rankpoints`=%d,
                 `rank`='%s' 
             WHERE `username`='%s'",
             $rankp,
             $new_rank_title,
             $username);

if (mysql_query($sql))
 echo "Update successful";
else
 echo "Updated failed"; 

 

 

må jeg legge inn for hver rank?? og der det står %d og %s, hva betyr der?

Endret av Belthazor
Lenke til kommentar

%d betyr at det er et nummer og %s betyr at det er en string (altså tekst). sprintf() funksjonen setter dermed single quotes rundt %s, men ikke rundt %d. Når funksjonen kjøres bytter den ut %d og %s med variablene som er skrevet på slutten der...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...