gunmetal Posted October 23, 2010 Author Report Share Posted October 23, 2010 tad kāpēc ir "WHERE 1" ? Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 Bet vai nav vienalga jebkurā gadījumā nesanāk ;( Tiešām neviens nezin kā var? Quote Link to comment Share on other sites More sharing options...
waplet Posted October 24, 2010 Report Share Posted October 24, 2010 Ieseto vienā fieldā timestamp'u kurā jābeidzas un tad if(time() > partavufieldtimestampu){daram ko vajag} Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 Bet man vajag lai katru stundu man pieskaita 1 punktu! Quote Link to comment Share on other sites More sharing options...
codez Posted October 24, 2010 Report Share Posted October 24, 2010 (edited) ko jūs tur murgojat par kaut kādiem CRONiem un mysql eventiem? Vienā laukā tev ir punktu skaits, citā laukā tev ir laiks, kurā šis punktu skaits ir pievienots. Users ----- points points_time Tagad, ja tev vajag attēlot cik pašlaik ir punkti, izrēķini laika starpību ($dt) starp tagadni un pēdējo reizi, kad punkti tika saglabāti. Pieņemsiom, tev tabulas ieraksts ir ielasīts masīvā $row; Tad $dt=$now-$row['points_time']; $points=$row['points']+$c*$dt; kur $c - konstante cik punktus pieskaitīt laika vienībās. Piemēram, ja $dt ir sekundēs, lai būtu viens punkts stundā, tad $c=1/3600; $dt - laika starpība starp tagadni un pēdējo ierakstu. Tālāk, ja vajag pieskaitīt vai atņemt papildus punktus un uzreiz, tad izrēķinām jauno punktu vērtību un pieskaitām punktus $points=$row['points']+$c*$dt; $points+=$extrapoints; un saglabājam db, gan jauno punktu skaitu, gan šī brīža laiku. Edited October 24, 2010 by codez Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 bet codez tas man katru stundus pieskaitīts punktus? Quote Link to comment Share on other sites More sharing options...
Rincewind Posted October 24, 2010 Report Share Posted October 24, 2010 ko jūs tur murgojat par kaut kādiem CRONiem un mysql eventiem? Ja punktiem nav nekādas reālas nozīmes, tad jā, murgojam. Bet ja vajag teiksim rādīt kaut kur lapas stūrītī top-5 lietotājus, tu nopietni piedāvā katrā query papildus skaitīt cik ir visiem lietotājiem un no tiem meklēt 5? Tadas lietas manuprāt jāpārdomā uzreiz. Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 Man wnk vajag, ka džeks piereģistrējas un katru stundu viņam pieskaita piem. +2 punktus, bet punkti visiem var atšķirties. Quote Link to comment Share on other sites More sharing options...
waplet Posted October 24, 2010 Report Share Posted October 24, 2010 :D Ha.. man arī bija līdzīga problēma, bet nācās kādu stundiņu pasvīst pie loģiskās domāšanas un tiku klāt pie kaut kā tāda. function energygive(){ /** * izrēķina iegūto enerģiju laikā, kad bija prom. **/ global $_SESSION; if (isset($_SESSION['userID']) && !empty($_SESSION['userID'])) { $query = query("SELECT `energy`,`lastenergyupd`,`energymax` FROM `users` WHERE id = ".$_SESSION['userID']); $time = time(); $secsaway = $time - $query->lastenergyupd; //print $query->lastenergyupd."<br/>"; //print $time."<br/>"; //print $time-$query->lastenergyupd."<br/>"; if($secsaway > energyadd){ $energygive = floor($secsaway/energyadd); //print $energygive."<br/>"; $secsleft = $secsaway % energyadd; //print $secsleft."<br/>"; $lastenergyupd = $time - $secsleft; //print $lastenergyupd."<br/>"; $energynow = $query->energy+$energygive; if($energynow > $query->energymax){ $energynow = $query->energymax; query("UPDATE `users` SET energy = ".$energynow.", lastenergyupd = ".$time." WHERE `id` = ".$_SESSION['userID']); }else{ query("UPDATE `users` SET energy = energy + ".$energygive.", lastenergyupd = ".$lastenergyupd." WHERE `id` = ".$_SESSION['userID']); } }else{ return true; } } } Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 šis kods lietotājiem katru stundu pieskaitīs noteiktus punktus? Quote Link to comment Share on other sites More sharing options...
Rincewind Posted October 24, 2010 Report Share Posted October 24, 2010 Parādi tabulas struktūru. Nosaukumu un visus laukus kuri saistīti ar punktu glabāšanu un skaitīšanu. Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 Man ir sadaļa sistema kur atrodas id un nosaukums un daudzums 1 un (piem. māja) un 37(punkti stundā) un sadaļa Members nu viss par lietotāju un ... ēka un punkti ... (māja) un (37) sadaļā sistēma man ir punktu skaiti noteiktai ēkais, bet sadaļā members parāka kāda ēka un cik punktus tā dot Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 ja vajag varu arī parādīt pilnīgu apskatu no mysql Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 (edited) CREATE TABLE `sitema` ( `id` int(10) NOT NULL auto_increment, `nosaukums` varchar(20) NOT NULL, `punkti` varchar(20) NOT NULL PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ; -- -- Dati tabulai `sistema` -- INSERT INTO `sistema` VALUES (1, 'māja', '10'); INSERT INTO `sistema` VALUES (2, 'kūts', '23'); INSERT INTO `sistema` VALUES (3, 'pirts', '15'); -- -------------------------------------------------------- -- -- Tabulas struktūra tabulai `members` -- CREATE TABLE `members` ( `id` int(11) NOT NULL auto_increment, `username` varchar(30) NOT NULL default '', `password` varchar(255) NOT NULL default '', `email` varchar(55) NOT NULL default '', `eka` varchar(55) NOT NULL default '', `dot` varchar(55) NOT NULL default '', `punkti` varchar(55) NOT NULL default '' PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ; -- -- Dati tabulai `members` -- INSERT INTO `members` VALUES (1, 'admin', '****', 'agris1624@inbox.lv', 'kūts', '23', '0'); Edited October 24, 2010 by gunmetal Quote Link to comment Share on other sites More sharing options...
gunmetal Posted October 24, 2010 Author Report Share Posted October 24, 2010 Un man vajag lai tos 23 punktus katru stundu pieskaita pie `punkti`. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.