27. november 2010 - 17:53
Der er
19 kommentarer og 2 løsninger
Level system
Hej eksperter! Jeg har et forum hvor jeg gerne vil have et level system... Det skal være sådan at man f.eks. stiger level ved 10 forum indlæg, hvordan kan jeg gøre det?
Annonceindlæg fra Conscia
27. november 2010 - 18:02
#1
Du kan give brugerne point for hvert indlæg, eller lade brugere rate en person på hans indlæg, guides m.m, hvordan du nu vælger at gøre, og så bare gemme det i en mysql. Så kan du lave en table hvor du skriver rang-navne, og hvad kravet for point er, og så bare lave et opslag fra hvor mange point en bruger har.. Håber du kan bruge det til noget. :)
27. november 2010 - 19:47
#2
Har det her: <?php include("include/session.php"); $post = mysql_query("SELECT forum_posts FROM users WHERE username ='$session->username'"); if ($post >= 0 && $post <= 5) { echo 'Du er level 1'; } elseif ($post >= 6 && $post <= 10) { echo 'Du er level 2'; } ?> Men det gider ikke vise hvilket level man er i og kan ikke rigtig se hvorfor.
27. november 2010 - 20:07
#3
Det er fordi at $post er et mysql resultat; en resource - ikke et tal du kan regne med.
Så skal du gøre noget ala
<?php include("include/session.php"); $res = mysql_query("SELECT forum_posts FROM users WHERE username ='$session->username'"); $post = mysql_num_rows($post); if ($post >= 0 && $post <= 5) { echo 'Du er level 1'; } elseif ($post >= 6 && $post <= 10) { echo 'Du er level 2'; } ?>
27. november 2010 - 21:02
#4
$post = mysql_num_rows($post); skal bare lige ændres til $post = mysql_num_rows($res); Så skal det også nok virke. Men var helt sikkert også det repox ville frem til! :)
27. november 2010 - 21:37
#5
Jaeh, lille copy-paste fejl... ;)
28. november 2010 - 13:31
#6
Måske: $post = mysql_result(mysql_query("SELECT COUNT(*) FROM users WHERE username ='$session->username'"),0); // antal posts for at "opgradere" $step = 10; // mindste og største opgradering $minimum = 1; $maximum = 10; // aktuelt level $level = floor($post/$step); echo $level."<p>"; $vist_level = ($level == 0 ? $minimum : ($level >= $maximum ? $maximum : ($post%$level == 0 && ($level+1) < $maximum ? ($level+1) : $level))); echo $vist_level;
28. november 2010 - 18:26
#7
Kan ikke rigtig få det til at virke... I feltet forum_posts står der jo hvor mange indlæg man har skrevet... Og lige meget hvor mange jeg skriver er jeg altid level 1. Kan ikke rigtig lige se hvad jeg kan gøre.
28. november 2010 - 18:52
#8
Hvad for et eksempel arbejder du ud fra?
28. november 2010 - 19:16
#9
Jeg arbejder ud fra: <?php include("include/session.php"); $res = mysql_query("SELECT forum_posts FROM users WHERE username ='$session->username'"); $post = mysql_num_rows($post); if ($post >= 0 && $post <= 5) { echo 'Du er level 1'; } elseif ($post >= 6 && $post <= 10) { echo 'Du er level 2'; } ?>
28. november 2010 - 19:18
#10
Og har rettet $post til $res.. copy paste fejl :-)
28. november 2010 - 19:59
#11
Hvis du udskriver $post på siden, hvilken værdi har det så? Den rigtige værdi? Altså echo $post;
28. november 2010 - 20:08
#12
Nej det får værdien nul når jeg bruger echo $post, men i min db er den 11.
28. november 2010 - 20:18
#13
Prøv med mysql_num_rows i stedet for mysql_num_rows..? :)
28. november 2010 - 20:19
#14
Øhh... Hvad er forskellen? :-)
28. november 2010 - 20:20
#15
Du skal også lige tænke på at du med den her kode tæller hvor mange rækker der er, og det lyder som om det er et felt du opdaterer i din DB?
28. november 2010 - 20:21
#16
Det ved jeg ikke, men jeg har erfaring med at det nogle gange hjælper at skifte ud.
28. november 2010 - 20:23
#17
Kentora... Det ved jeg... Men jeg ved ikke hvordan jeg får 11 tallet frem så jeg kan bruge det til at regne med :)
28. november 2010 - 20:28
#18
Hvis det er et felt du opdaterer, så skal du skrive noget alá: [code] <?php include("include/session.php"); $res = mysql_query("SELECT forum_posts FROM users WHERE username ='$session->username'"); $post2 = mysql_fetch_array($res); $post = $post2['forum_posts']; if ($post >= 0 && $post <= 5) { echo 'Du er level 1'; } elseif ($post >= 6 && $post <= 10) { echo 'Du er level 2'; } ?> [/code] hvor feltet forum_posts så er det felt du har antal i. :)
28. november 2010 - 20:35
#19
Tak! Kentora og repox opret svar :)
30. november 2010 - 10:57
#20
Jamen, jeg smider da et svar, så vi kan få lukket...
04. december 2010 - 18:08
#21
Svar :)
Vi tilbyder markedets bedste kurser inden for webudvikling