18. november 2005 - 10:53
Der er
36 kommentarer og 1 løsning
Hvordan lavet jeg et simpelt level system ?
Haii Eksperter .. Vil en af jer hjælpe mig med et simpelt men funktionelt level system ? det skal være sån at den tæller hvor lang tid man har været online , og så mellem visse timer skal den så omsætte det til et level , fx Mellem 1 til 5 er det level 1 mellem 5 til 10 er det level 2 osv .. det er bare nogen eksempler .. og så når den har regnet ud hvad lvl man har , så skal den gemme det i Databasen i en tabel som hedder "users" og row som hedder "lvl" ... eR det noget i kan hjælpe Meed? hvor mange oplysninger skal i bruge ? jeg sætter gerne flere point ud hvis det blir nødvendigt .. 100 Point til at starte med , ligger flere ud hvis det er nødvendigt .. !
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
18. november 2005 - 20:20
#1
Prøv at se her: <?php //http://exp.dk/spm/665517 function calcLevel($login_time_UNIX) { $difference = time() - $login_time_UNIX; $fullHours = floor($difference / 3600); $level = 0; switch(true) { case $fullHours > 0 && $fullHours <= 5: $level = 1; break; case $fullHours > 5 && $fullHours <= 10: $level = 2; break; case $fullHours > 10 && $fullHours <= 15: $level = 3; break; case $fullHours > 15 && $fullHours <= 20: $level = 4; break; case $fullHours > 20 && $fullHours <= 25: $level = 5; break; case $fullHours > 25 && $fullHours <= 30: $level = 6; break; case $fullHours > 30 && $fullHours <= 35: $level = 7; break; case $fullHours > 35 && $fullHours <= 40: $level = 8; break; case $fullHours > 40 && $fullHours <= 45: $level = 9; break; case $fullHours > 45 && $fullHours <= 50: $level = 10; break; default: $level = 0; } return $level; } $test = mktime(11, 0, 0, 11, 18, 2005); echo calcLevel($test); ?>
18. november 2005 - 20:21
#2
Når du trækker login tiden ud af din database, så bruge: SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE user = brugerID og hvor du så vil bruge level, laver du: echo calcLevel($row["unix"]);
20. november 2005 - 16:59
#3
Hvilke Tabeller / Rows skal jeg så oprette i min db ? kan se jeg skal lave en row som hedder "unix" men hvad hedder tabellen ? kan du skrive den så at den kommer til at ligge i Tabellen users ? eller gør den det ?
20. november 2005 - 17:01
#4
WHERE user = brugerID Der skal vel stå: WHERE username = userid .... ? hvordan er det den trækker id'et ud ? er det ikke: $id=[getid] eller noed i den stil ???
20. november 2005 - 17:08
#5
hvad skal den så hedde i den her? print "<img src=\"png.php?lvl=calcLevel($row["unix"])\">"; ??? skal den se sådan ud ellR hvad ? ^^^^^^
20. november 2005 - 17:40
#6
Jeg har prøvet , jeg kan ikk få den til at virke .. der skal vel stå noget før : SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE user = brugerID der skal vel stå $ ???? den ser sån ud: $SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE (username='$id'); har jeg lavet fejl ?
20. november 2005 - 20:17
#7
mysql_query("SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE user = ".$_SESSION["brugerID"]." LIMIT 1");
20. november 2005 - 23:01
#8
altså PHP filen kommer så til at se således ud: <php include="sql.php"; //http://exp.dk/spm/665517 function calcLevel($login_time_UNIX) { $difference = time() - $login_time_UNIX; $fullHours = floor($difference / 3600); $level = 0; switch(true) { case $fullHours > 0 && $fullHours <= 5: $level = 1; break; case $fullHours > 5 && $fullHours <= 10: $level = 2; break; case $fullHours > 10 && $fullHours <= 15: $level = 3; break; case $fullHours > 15 && $fullHours <= 20: $level = 4; break; case $fullHours > 20 && $fullHours <= 25: $level = 5; break; case $fullHours > 25 && $fullHours <= 30: $level = 6; break; case $fullHours > 30 && $fullHours <= 35: $level = 7; break; case $fullHours > 35 && $fullHours <= 40: $level = 8; break; case $fullHours > 40 && $fullHours <= 45: $level = 9; break; case $fullHours > 45 && $fullHours <= 50: $level = 10; break; default: $level = 0; } return $level; } $test = mktime(11, 0, 0, 11, 18, 2005); echo calcLevel($test); ?> <? mysql_query("SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE username = ".$_SESSION["id"]." LIMIT 1"); ?> <? echo calcLevel($row["unix"]); ?> elleR hvad ? men hvor har den row fra? altså $row["unix"] ... hvis det ikk eR rigtigt vil du så ikk lige skrive den hele ? altså den php fil .. og sige hvilken Row's jeg skal lave ..
21. november 2005 - 08:00
#9
$query = mysql_query("SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE username = ".$_SESSION["id"]." LIMIT 1"); if(mysql_num_rows($query)>0) { $row = mysql_fetch_assoc($query); echo calcLevel($row["unix"]); }
21. november 2005 - 19:11
#10
Den siger fejl i linie 141.. Line 141: if(mysql_num_rows($query)>0) Sån her ser fejlen ud når jeg ser den på siden: 0 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\websider\vhosts\DOMÆNE.dk\httpdocs\chatnet\loginok.php on line 141
21. november 2005 - 19:35
#11
Så er der noget galt i den sql vi har lavet ovenover.
21. november 2005 - 19:47
#12
Hvor henne er fejlen Såå ? jeg kan ikk se den ..
21. november 2005 - 19:51
#13
Prøv efter: $query = mysql_query("SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE username = ".$_SESSION["id"]." LIMIT 1"); echo mysql_error(); og så: if(mysql_num_rows($query)>0) { $row = mysql_fetch_assoc($query); echo calcLevel($row["unix"]); }
21. november 2005 - 20:09
#14
jeg får denne fejl: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE bow know = 17' at line 1 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\websider\vhosts\Domæne.dk\httpdocs\chatnet\lvl2.php on line 48 Linie 48: if(mysql_num_rows($query)<0) if(mysql_num_rows($query)>0) Det eR den samme , prøvede bare at vende >< om , men får samme fejl uanset hvad ..
21. november 2005 - 20:12
#15
skal der ikk oZz være en Select til den her : <? function calcLevel($login_time_UNIX) { $difference = time() - $login_time_UNIX; $fullHours = floor($difference / 3600); $level = 0; switch(true) { case $fullHours > 0 && $fullHours <= 5: $level = 1; break; case $fullHours > 5 && $fullHours <= 10: $level = 2; break; case $fullHours > 10 && $fullHours <= 15: $level = 3; break; case $fullHours > 15 && $fullHours <= 20: $level = 4; break; case $fullHours > 20 && $fullHours <= 25: $level = 5; break; case $fullHours > 25 && $fullHours <= 30: $level = 6; break; case $fullHours > 30 && $fullHours <= 35: $level = 7; break; case $fullHours > 35 && $fullHours <= 40: $level = 8; break; case $fullHours > 40 && $fullHours <= 45: $level = 9; break; case $fullHours > 45 && $fullHours <= 50: $level = 10; break; } return $level; } $test = mktime(11, 0, 0, 11, 18, 2005); ?> ???? og hvilke Rows skal jeg lave i min db .. ?
21. november 2005 - 20:15
#16
Problemet er det er noget galt i din sql. Alt andet skulle være ok! Hvad har du i din tabel? Du skal jo som minimum have: brugerID onlinetid
21. november 2005 - 20:20
#17
vil du se et dump af den jeg tester den på ? -- -------------------------------------------------------- -- -- Struktur-dump for tabellen `users` -- CREATE TABLE `users` ( `id` int(5) NOT NULL auto_increment, `username` varchar(15) collate latin1_danish_ci NOT NULL default '', `password` varchar(32) collate latin1_danish_ci NOT NULL default '', `onlinetid` int(10) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`,`username`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci AUTO_INCREMENT=151 ; -- Sån ser den ud !
21. november 2005 - 20:22
#18
Du har noget helt galt i din SQL. Hvor kommer det her fra: WHERE bow know = 17 Du skulle bruge SQL: $query = mysql_query("SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE username = ".$_SESSION["id"]." LIMIT 1");
21. november 2005 - 20:22
#19
Jeg har lavet en Include .. skal jeg ikk oZz have en Row som hedder unix ?
21. november 2005 - 20:25
#20
Hvad er onlinetid for en fisk? Er det et unix_timestamp som gemmes i den?
21. november 2005 - 20:27
#21
onlinetid er den tid som man har været online i, det var fra et tidligere system .. jeg prøvede men som ikk virkede .. Hvorn kan jeg se det ?
21. november 2005 - 20:28
#22
Prøv at smid noget dump fra din users tabel.
21. november 2005 - 20:30
#23
det eR den der^^^^: -- -------------------------------------------------------- -- -- Struktur-dump for tabellen `users` -- CREATE TABLE `users` ( `id` int(5) NOT NULL auto_increment, `username` varchar(15) collate latin1_danish_ci NOT NULL default '', `password` varchar(32) collate latin1_danish_ci NOT NULL default '', `onlinetid` int(10) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`,`username`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci AUTO_INCREMENT=151 ; --
21. november 2005 - 20:32
#24
Ja, men jeg mener hvilken slags data du har i onlinetid.
21. november 2005 - 20:33
#25
Der er tal .. Hvad Mener duH helt konkret ? den fil som opdatere onlinetid ?
21. november 2005 - 20:36
#26
Nej, hvad betyder det som står i onlinetid? Er det antal sekunder?
21. november 2005 - 20:39
#27
Jaa , det skulle jeg mene .. 3600 skal der stå før man er online i en time ...
21. november 2005 - 20:41
#28
Så retter du funktionen til: function calcLevel($online_tid) { $fullHours = floor($online_tid / 3600); $level = 0; switch(true) { case $fullHours > 0 && $fullHours <= 5: $level = 1; break; case $fullHours > 5 && $fullHours <= 10: $level = 2; break; case $fullHours > 10 && $fullHours <= 15: $level = 3; break; case $fullHours > 15 && $fullHours <= 20: $level = 4; break; case $fullHours > 20 && $fullHours <= 25: $level = 5; break; case $fullHours > 25 && $fullHours <= 30: $level = 6; break; case $fullHours > 30 && $fullHours <= 35: $level = 7; break; case $fullHours > 35 && $fullHours <= 40: $level = 8; break; case $fullHours > 40 && $fullHours <= 45: $level = 9; break; case $fullHours > 45 && $fullHours <= 50: $level = 10; break; } return $level; } Og så kalder du den med: echo calcLevel($row["onlinetid"]);
21. november 2005 - 20:46
#29
Skal : $query = mysql_query("SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE username = ".$_SESSION["id"]." LIMIT 1"); echo mysql_error(); if(mysql_num_rows($query) < 0){ $row = mysql_fetch_assoc($query); stadig være deR ?
21. november 2005 - 20:56
#30
$query = mysql_query("SELECT onlinetid WHERE username = ".$_SESSION["id"]." LIMIT 1"); if(mysql_num_rows($query) < 0) { $row = mysql_fetch_assoc($query); echo calcLevel($row["onlinetid"]); }
21. november 2005 - 21:01
#31
fejl i Linie 45 .. Line 45: if(mysql_num_rows($query) < 0)
21. november 2005 - 21:04
#32
Ja, men det var jo det vi fandt ud af før! At du har et fejl i din SQL! Af en eller anden årsag skriver du bow how i SQL! Det ser ud som om du sætter det ind i stedet for username
21. november 2005 - 21:06
#33
Sån her ser min lvl fil ud: <? include("inc/sql.php"); $query = mysql_query("SELECT UNIX_TIMESTAMP(datotid) AS unix WHERE username = ".$_SESSION["id"]." LIMIT 1"); function calcLevel($online_tid) { $fullHours = floor($online_tid / 3600); $level = 0; switch(true) { case $fullHours > 0 && $fullHours <= 5: $level = 1; break; case $fullHours > 5 && $fullHours <= 10: $level = 2; break; case $fullHours > 10 && $fullHours <= 15: $level = 3; break; case $fullHours > 15 && $fullHours <= 20: $level = 4; break; case $fullHours > 20 && $fullHours <= 25: $level = 5; break; case $fullHours > 25 && $fullHours <= 30: $level = 6; break; case $fullHours > 30 && $fullHours <= 35: $level = 7; break; case $fullHours > 35 && $fullHours <= 40: $level = 8; break; case $fullHours > 40 && $fullHours <= 45: $level = 9; break; case $fullHours > 45 && $fullHours <= 50: $level = 10; break; } return $level; } $query = mysql_query("SELECT onlinetid WHERE username = ".$_SESSION["id"]." LIMIT 1"); if(mysql_num_rows($query) < 0) { $row = mysql_fetch_assoc($query); echo calcLevel($row["onlinetid"]); } ?>
21. november 2005 - 21:15
#34
Fang mig lige på MSN! jakobdo (at) hotmail (dot) com
12. december 2005 - 19:10
#35
jakob skal du have point her? du hjalp mig trodsalt med at løse det og komme på vej så .. men lig et svar ..
12. december 2005 - 20:00
#36
Svar!
13. december 2005 - 23:24
#37
Takker for point!
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.