KRIZx Skrevet 28. november 2012 Del Skrevet 28. november 2012 Heisann godt folk! Har nå fått alt på serveren min til å funke, men så er det alltids ett problem.. når jeg skal logge ut fra nettsiden min så får jeg denne meldingen: SQL Error: Duplicate entry '416' for key Hvorfor får jeg denne meldingen? Takk for svar på forhånd Lenke til kommentar
Feh Skrevet 28. november 2012 Del Skrevet 28. november 2012 (endret) Litt mer info kunne vært nyttig. Hva er det du har på nettsiden din? Er det et CMS (WP, Joomla, forum etc.) eller noe du har skrevet selv? Du får hvertfall feilmeldingen fordi et script forsøker å sette inn en verdi i databasen som finnes fra før i et felt som ikke tillater duplikater (uniqe/primary key). Endret 28. november 2012 av Feh Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 Det er ikke ett CMS nej, har skrevet selv Ahh, det kan nok hende.. skal jeg poste en kode snutt? Lenke til kommentar
Feh Skrevet 28. november 2012 Del Skrevet 28. november 2012 Post spørringen din, og create table setninger hvis du har det liggende, eller et screenshot strukturen på tabellen du prøver å skrive til (fra phpmyadmin eller hva du bruker for å administrere). Lenke til kommentar
TheClown Skrevet 28. november 2012 Del Skrevet 28. november 2012 Feilemeldingen betyr at du prøver å legge til en rad i en tabell og gir denne samme ID som en ID som allerede eksisterer i tabellen. Hvis du har satt dette som UNIQUE eller en annen form for key, så vil det ikke gå. Det lures er å sette auto_incrementel på slike former, slik at de oppdateres automatisk uten at du trenger å fylle inn tallet. Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 Har auto_increment i ID som er i tabellen sessions. Men når jeg har logget ut så får jeg som sagt den erroren, og hvis jeg skal logge inn igjen så må jeg fjerne siste sessions i tabellen manuelt. Hvorfor skjer dette? Jeg vil at sessions skal bli destroyed når man logger ut Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 Har også ett problem til.. har en funksjon hvor man kan se hvor mange som har vært pålogget samtidig: Flest antall pålogget samtidig: 0 spillere - 1. Januar 1970 01:00:00 Men problemet er at datoen er klinkanon gæren, funksjonen spørr etter tabellen også henter den ut informasjon om onlinestats. Men her har den ikke hentet ut noen brukere og heller ikke riktig dato -.- Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 Har også ett problem til.. har en funksjon hvor man kan se hvor mange som har vært pålogget samtidig: Flest antall pålogget samtidig: 0 spillere - 1. Januar 1970 01:00:00 Men problemet er at datoen er klinkanon gæren, funksjonen spørr etter tabellen også henter den ut informasjon om onlinestats. Men her har den ikke hentet ut noen brukere og heller ikke riktig dato -.- Lenke til kommentar
TheClown Skrevet 28. november 2012 Del Skrevet 28. november 2012 Har auto_increment i ID som er i tabellen sessions. Men når jeg har logget ut så får jeg som sagt den erroren, og hvis jeg skal logge inn igjen så må jeg fjerne siste sessions i tabellen manuelt. Hvorfor skjer dette? Jeg vil at sessions skal bli destroyed når man logger ut PHP sessions blir ødelagt når man logger ut ja, men det som er lagret i databasen har ingenting med dette å gjøre. Den blir liggende igjen helt til du fjerner den. Om du har logginn/ut-funksjon må du slette sessions fra tabellen også. Om det er sånn at man må logge inn hver gang man f.eks lukker nettleseren (uten bruk av Cookies mao), så må du sjekke på hver pageload om noen sessions er utgått og slette de eventuelle utgåtte radene fra databasen. Men problemet er at datoen er klinkanon gæren, funksjonen spørr etter tabellen også henter den ut informasjon om onlinestats. Men her har den ikke hentet ut noen brukere og heller ikke riktig dato -.- Hvordan ser du for deg at jeg skal gjette meg frem til feilen uten å se en linje med kode? Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 <?php if(! defined('BASEPATH') ){ exit('Unable to view file.'); } $sql = $db->Query("SELECT * FROM `game_stats` ORDER BY last_updated DESC LIMIT 1"); $game_stats = $db->FetchArray($sql); $user_stats = unserialize($game_stats['user_stats']); $player_stats = unserialize($game_stats['player_stats']); $money_stats = unserialize($game_stats['money_stats']); $online_stats = unserialize($game_stats['online_stats']); $messages_stats = unserialize($game_stats['messages_stats']); $forum_stats = unserialize($game_stats['forum_stats']); $logevent_stats = unserialize($game_stats['logevent_stats']); ?> <div style="margin: 0 auto; width: 630px;"> <div class="left" style="width: 310px;"> <div class="bg_c c_1 t_justify" style="width: 290px; margin: 10px 0 10px -1px;"> <p style="margin-top: 5px;">Spillet åpnet <b><?=View::Time($game_stats['last_updated'], true)?></b>.<br /><span style="color: #555555;"><?=View::strTime(time() - $game_stats['last_updated'], 1, ', ')?> siden.</span></p> <p><b>Flest antall spillere pålogget samtidig:</b><br /><span style="color: #b04600;"><?=View::CashFormat($online_stats['highest_online'])?> spillere</span> - <?=View::Time($online_stats['highest_online'][1], true)?></p> </div> <table class="table"> <thead><tr><td colspan="2">Diverse tall</td></tr></thead> <tbody> <tr class="c_2"> <td>Antall brukere</td> <td class="t_right"><?=View::CashFormat($user_stats['num_total'])?></td> </tr> <tr class="c_3"> <td>Aktive brukere</td> <td class="t_right"><?=View::CashFormat($user_stats['num_active'])?></td> </tr> <tr class="c_2"> <td>Deaktiverte brukere</td> <td class="t_right"><?=View::CashFormat($user_stats['num_deactivated'])?></td> </tr> <tr class="c_1"><td colspan="2"> </td></tr> <tr class="c_3"> <td>Antall spillere</td> <td class="t_right"><?=View::CashFormat($player_stats['num_total'])?></td> </tr> <tr class="c_2"> <td>Aktive spillere</td> <td class="t_right"><?=View::CashFormat($player_stats['num_active'])?></td> </tr> <tr class="c_3"> <td>Deaktiverte spillere</td> <td class="t_right"><?=View::CashFormat($player_stats['num_deactivated'])?></td> </tr> <tr class="c_3"> <td>Døde spillere</td> <td class="t_right"><?=View::CashFormat($player_stats['num_dead'])?></td> </tr> <tr class="c_1"><td colspan="2"> </td></tr> <tr class="c_2"> <td>Spillere pålogget siste 24 timer</td> <td class="t_right"><?=View::CashFormat($online_stats['last_24_hours'])?></td> </tr> <tr class="c_3"> <td>Spillere pålogget siste 12 timer</td> <td class="t_right"><?=View::CashFormat($online_stats['last_12_hours'])?></td> </tr> <tr class="c_2"> <td>Spillere pålogget siste 6 timer</td> <td class="t_right"><?=View::CashFormat($online_stats['last_6_hours'])?></td> </tr> <tr class="c_1"><td colspan="2"> </td></tr> <tr class="c_2"> <td><b>Spillere</b> opprettet i dag</td> <td class="t_right"><?=View::CashFormat($player_stats['regged_today'])?></td> </tr> <tr class="c_3"> <td><b>Spillere</b> opprettet i går</td> <td class="t_right"><?=View::CashFormat($player_stats['regged_yesterday'])?></td> </tr> <tr class="c_2"> <td><b>Spillere</b> opprettet i forigårs</td> <td class="t_right"><?=View::CashFormat($player_stats['regged_2_days'])?></td> </tr> <tr class="c_3"> <td><b>Brukere</b> opprettet i dag</td> <td class="t_right"><?=View::CashFormat($user_stats['regged_today'])?></td> </tr> <tr class="c_2"> <td><b>Brukere</b> opprettet i går</td> <td class="t_right"><?=View::CashFormat($user_stats['regged_yesterday'])?></td> </tr> <tr class="c_3"> <td><b>Brukere</b> opprettet i forigårs</td> <td class="t_right"><?=View::CashFormat($user_stats['regged_2_days'])?></td> </tr> <tr class="c_1"><td colspan="2"> </td></tr> <tr class="c_2"> <td>Antall forumtråder</td> <td class="t_right"><?=View::CashFormat($forum_stats['threads_num_total'])?></td> </tr> <tr class="c_3"> <td>Antall forumsvar</td> <td class="t_right"><?=View::CashFormat($forum_stats['posts_num_total'])?></td> </tr> <tr class="c_2"> <td>Antall private meldinger</td> <td class="t_right"><?=View::CashFormat($messages_stats['num_total'])?></td> </tr> <tr class="c_3"> <td>Antall logghandlinger</td> <td class="t_right"><?=View::CashFormat($logevent_stats['num_total'])?></td> </tr> <?php if (Player::Data('level') >= 3): ?> <tr class="c_1"><td colspan="2"><b style="color: #444444;">Admin/moderator</b></td></tr> <tr class="c_2"> <td>Penger hos aktive spillere</td> <td class="t_right"><?=View::CashFormat($money_stats['players_cash']+$money_stats['players_bank'])?> kr<br /><span class="subtext"><?=(View::CashFormat(round(($money_stats['players_cash']+$money_stats['players_bank'])/$player_stats['num_active'])))?> kr</span></td> </tr> <tr class="c_3"> <td>Poeng hos aktive spillere</td> <td class="t_right"><?=View::CashFormat($money_stats['players_points'])?> p<br /><span class="subtext"><?=(View::CashFormat(round($money_stats['players_points']/$player_stats['num_active'])))?> p</span></td> </tr> <tr class="c_2"> <td>Penger i firmabanker</td> <td class="t_right"><?=View::CashFormat($money_stats['business'])?> kr</td> </tr> <tr class="c_3"> <td>Penger i familiebanker</td> <td class="t_right"><?=View::CashFormat($money_stats['families'])?> kr</td> </tr> <?php endif; ?> </tbody> </table> <table class="table"> <thead> <tr><td colspan="4">Rankene</td></tr> </thead> <tbody> <?php $ranks = array_reverse($config['ranks'], true); foreach ($ranks as $key => $rank) { $i++; $c = $i%2 ? 2 : 3; $num = $player_stats['ranklist'][$key]; ?> <tr class="c_<?=$c?>"> <td>#<?=$key?></td> <td><?=$rank[0]?></td> <td class="center"><?=View::AsPercent($num, $player_stats['ranklist_num'], 2)?> %</td> <td class="t_right"><b><?=View::CashFormat($num)?></b></td> </tr> <?php } unset($i); ?> </tbody> </table> <table class="table"> <thead> <tr><td colspan="3">10 siste registrerte spillere</td></tr> </thead> <tbody> <?php $sql = $db->Query("SELECT id,created,level,name,health FROM `[players]` ORDER BY id DESC LIMIT 10"); while ($player = $db->FetchArray($sql)) { $i++; $c = $i%2 ? 2 : 3; ?> <tr class="c_<?=$c?>"> <td class="center">#<?=$i?></td> <td><?=View::Player($player)?></td> <td class="t_right"><?=View::Time($player['created'])?></td> </tr> <?php } unset($i); ?> </tbody> </table> </div> <div class="left" style="width: 310px; margin-left: 10px;"> <table class="table"> <thead> <tr><td colspan="3">Topp 10 rankede spillere</td></tr> </thead> <tbody> <?php $sql = $db->Query("SELECT id,rank,level,name,health FROM `[players]` WHERE `health`>'0' AND `level`>'0' AND `level`<'3' ORDER BY rankpoints DESC LIMIT 10"); while ($player = $db->FetchArray($sql)) { $i++; $c = $i%2 ? 2 : 3; ?> <tr class="c_<?=$c?>"> <td class="center">#<?=$i?></td> <td><?=View::Player($player)?></td> <td class="t_right"><?=$config['ranks'][$player['rank']][0]?></td> </tr> <?php } unset($i); ?> <tr class="c_3"> <td colspan="3">Din plass: <?=(IS_ONLINE ? '#' . Player::Data('rank_pos') : '<a href="/login/">Logg inn</a> for å se din plassering')?></td> </tr> </tbody> </table> <table class="table"> <thead> <tr><td colspan="3">Topp 10 mordere</td></tr> </thead> <tbody> <?php $sql = $db->Query("SELECT id,killpoints,level,name,health FROM `[players]` WHERE `health`>'0' AND `level`>'0' AND `killpoints`>='1' AND `level`<'3' ORDER BY `killpoints` DESC LIMIT 10"); while ($player = $db->FetchArray($sql)) { $i++; $c = $i%2 ? 2 : 3; ?> <tr class="c_<?=$c?>"> <td class="center">#<?=$i?></td> <td><?=View::Player($player)?></td> <td class="t_right"><?=View::CashFormat($player['killpoints'])?> <span class="dark">drapspoeng</span></td> </tr> <?php } unset($i); ?> </tbody> </table> <table class="table"> <thead> <tr><td colspan="3">Topp 10 rikeste spillere</td></tr> </thead> <tbody> <?php $sql = $db->Query("SELECT id,level,name,health,cash,bank FROM `[players]` WHERE `health`>'0' AND `level`>'0' AND `level`<'3' ORDER BY cash + bank DESC LIMIT 10"); while ($player = $db->FetchArray($sql)) { $i++; $c = $i%2 ? 2 : 3; ?> <tr class="c_<?=$c?>"> <td class="center">#<?=$i?></td> <td><?=View::Player($player)?></td> <td class="t_right"><?=(View::MoneyRank($player['cash']+$player['bank'], true))?></td> </tr> <?php } unset($i); ?> </tbody> </table> <table class="table"> <thead> <tr><td colspan="2">Topp 10 utbrytere</td></tr> </thead> <tbody> <?php foreach ($player_stats['top_jail_breakouts'] as $player) { $i++; $c = $i%2 ? 2 : 3; ?> <tr class="c_<?=$c?>"> <td><?=View::Player(array('id' => $player[0]))?></td> <td class="t_right"><?=View::CashFormat($player[1])?></td> </tr> <?php } unset($i); ?> </tbody> </table> <table class="table"> <thead> <tr><td colspan="3">10 mest wanted spillere</td></tr> </thead> <tbody> <?php $sql = $db->Query("SELECT id,`wanted-level`,level,name,health FROM `[players]` WHERE `wanted-level`>='1' AND `health`>'0' AND `level`>'0' AND `level`<'3' ORDER BY `wanted-level` DESC LIMIT 10"); while ($player = $db->FetchArray($sql)) { $i++; $c = $i%2 ? 2 : 3; ?> <tr class="c_<?=$c?>"> <td class="center">#<?=$i?></td> <td><?=View::Player($player)?></td> <td class="t_right"><?=View::AsPercent($player['wanted-level'], $config['max_wanted-level'], 2)?> %</td> </tr> <?php } unset($i); ?> </tbody> </table> </div> <div class="clear"></div> </div> <?php if (Player::Data('level') > 2) { echo ' <div class="graph_container"> <div id="graph_money"></div> </div>'; } ?> Jeg mener det er database tabellen som er feil, får det liksom ikke til å stemme helt.. Lenke til kommentar
Feh Skrevet 28. november 2012 Del Skrevet 28. november 2012 (endret) PHP sessions blir ødelagt når man logger ut ja, men det som er lagret i databasen har ingenting med dette å gjøre. Den blir liggende igjen helt til du fjerner den. Om du har logginn/ut-funksjon må du slette sessions fra tabellen også. Om det er sånn at man må logge inn hver gang man f.eks lukker nettleseren (uten bruk av Cookies mao), så må du sjekke på hver pageload om noen sessions er utgått og slette de eventuelle utgåtte radene fra databasen. Hvis du har auto-increment på feltet, men likevel får en feilmelding så er det antageligvis spørringen som er feil. Jeg finner ingen INSERT setninger i den biten med kode du postet... Grunnen til at du får opp 1970 er pga. feil formatering av date/time eller feil/manglende konvertering av verdien fra databasefeltet. Vanskelig å si uten å vite hva som faktisk står i tabellen, og hvordan det blir lagret dit så det må du nesten finne frem. Du kan lese mer om dette i PHP manualen: http://php.net/manua...nction.date.php Sånn umiddelbart ser det ut til at det brukes en funksjon for å formatere datoen fra databasen (antageligvis noe ala dette: date('j F Y h:i:s')) som ser riktig ut i og for seg, men datoen lagret i databasen er UNIX Epoch timestampet 01-01-1970. Det kan f.eks skyldes at feltet i spørringen som skal sette inn verdien har en error, eller ikke er definert. Siden feltet i databasen er satt til datetime, men ikke får noen verdi fra spørringen vil det automatisk sette inn dette tidspunktet. Endret 28. november 2012 av Feh Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 Her har du database tabellen game_stats `user_stats` int(225) Null (Ja) Standard NULL `player_stats` int(255) Null (Ja) Standard NULL `money_stats`, bigint(255) Null (Ja) Standard NULL `online_stats`, tinyint(225) Null (ja) Standard NULL `forum_stats`, int(1) Null Ja Standard 1 `logevent_stats`, text latin1_swedish_ci Null (Ja) Standard NULL `last_updated` int(225) Null (Ja) Standard 0 `messages_stats` int(255) Null (ja) Standard NULL Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 (endret) N Endret 28. november 2012 av KRIZx Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 Noen som fortsatt er våkne som har lyst til å sette av litt tid til å hjelpe meg? Har fortsatt ikke funnet feilen.. Lenke til kommentar
blackbrrd Skrevet 28. november 2012 Del Skrevet 28. november 2012 Du har ikke postet noen insert/update setninger i koden, så det ser ikke ut som du har postet den relevante delen. Lenke til kommentar
KRIZx Skrevet 28. november 2012 Forfatter Del Skrevet 28. november 2012 <?php //ini_set('display_errors', 1); header('Content-type: text/plain'); define('BASEPATH', true); $config['sql_host'] = "hostname"; $config['sql_username'] = "database_un"; $config['sql_password'] = "sqlpassword"; $config['sql_database'] = "sql_database"; $config['sql_logdb'] = "sql_logdb"; require_once('../../libs/MySQL_connection.php'); $db = new MySQLConnection($config['sql_host'], $config['sql_username'], $config['sql_password'], $config['sql_database']); $db->Connect(); unset($config['sql_password']); $sql = $db->Query("SELECT online_stats FROM `game_stats` ORDER BY last_updated DESC LIMIT 1"); $stats = $db->FetchArray($sql); $game_stats['online_stats'] = unserialize($stats['online_stats']); $game_stats = array( 'user_stats' => array( 'num_total' => 0, 'num_active' => 0, 'num_deactivated' => 0, 'regged_today' => 0, 'regged_yesterday' => 0, 'regged_2_days' => 0 ), 'player_stats' => array( 'num_total' => 0, 'num_active' => 0, 'num_dead' => 0, 'num_deactivated' => 0, 'ranklist' => array(), 'ranklist_num' => 0, 'regged_today' => 0, 'regged_yesterday' => 0, 'regged_2_days' => 0, 'top_jail_breakouts' => array() ), 'money_stats' => array( 'total' => 0, 'players_cash' => 0, 'players_bank' => 0, 'players_points' => 0, 'business' => 0, 'families' => 0, 'coinroll' => 0 ), 'online_stats' => array( 'highest_online' => array($game_stats['online_stats']['highest_online'][0], $game_stats['online_stats']['highest_online'][1]), 'last_24_hours' => 0, 'last_12_hours' => 0, 'last_6_hours' => 0 ), 'messages_stats' => array( 'num_total' => 0 ), 'forum_stats' => array( 'threads_num_total' => 0, 'posts_num_total' => 0, 'num_total' => 0 ), 'logevent_stats' => array( 'num_total' => 0 ) ); $cash_log = 0; $points_log = 0; $crew_businesses = array(1); $crew_coinrolls = array(1); $crew_families = array(1); $game_economy = array(); /* USER STATS */ $sql = $db->Query("SELECT id,userlevel,last_active,reg_time FROM `[users]`"); while ($user = $db->FetchArray($sql)) { $game_stats['user_stats']['num_total']++; if($user['userlevel'] > 0) $game_stats['user_stats']['num_active']++; else $game_stats['user_stats']['num_deactivated']++; $reg = date('j.m.Y', $user['reg_time']); if($reg == date('j.m.Y')) $game_stats['user_stats']['regged_today']++; elseif($reg == date('j.m.Y', time() - 86400)) $game_stats['user_stats']['regged_yesterday']++; elseif($reg == date('j.m.Y', time() - 172800)) $game_stats['user_stats']['regged_2_days']++; if ($user['last_active'] > time() - 86400) $game_stats['online_stats']['last_24_hours']++; if ($user['last_active'] > time() - 43200) $game_stats['online_stats']['last_12_hours']++; if ($user['last_active'] > time() - 21600) $game_stats['online_stats']['last_6_hours']++; } /* PLAYER STATS */ $rankPositions = array(); $current_pos = 0; $family_rankpoints = array(); $players = array(); $topJail = array(); $sql = $db->Query("SELECT id,level,health,bank,cash,rank,created,points,rank_pos,last_active,`wanted-level`,family,rankpoints,jail_stats FROM `[players]` ORDER BY rankpoints DESC"); while ($player = $db->FetchArray($sql)) { $players[$player['id']] = $player; if ($player['level'] < 3 && ($player['level'] > 0 && $player['health'] > 0)) $current_pos++; $rankPositions[] = array( 'player' => $player['id'], 'old' => $player['rank_pos'], 'new' => ($player['level'] < 3 && !($player['level'] <= 0 || $player['health'] <= 0) ? $current_pos : 0) ); $game_stats['player_stats']['num_total']++; $reg = date('j.m.Y', $player['created']); if($reg == date('j.m.Y')) $game_stats['player_stats']['regged_today']++; elseif($reg == date('j.m.Y', time() - 86400)) $game_stats['player_stats']['regged_yesterday']++; elseif($reg == date('j.m.Y', time() - 172800)) $game_stats['player_stats']['regged_2_days']++; if ($player['level'] <= 0 || $player['health'] <= 0) { $game_stats['player_stats']['num_' . ($player['level'] <= 0 ? 'deactivated' : 'dead')]++; } else { $game_stats['player_stats']['num_active']++; if (!empty($player['family'])) { $family_rankpoints[$player['family']] += $player['rankpoints']; } if ($player['level'] < 3) { $cash_log += $player['cash'] + $player['bank']; $points_log += $player['points']; $game_stats['money_stats']['total'] += $player['cash'] + $player['bank']; $game_stats['money_stats']['players_cash'] += $player['cash']; $game_stats['money_stats']['players_bank'] += $player['bank']; $game_stats['money_stats']['players_points'] += $player['points']; $game_stats['player_stats']['ranklist'][$player['rank']]++; $game_stats['player_stats']['ranklist_num']++; $jailStats = unserialize($player['jail_stats']); if ($jailStats['breakouts_successed'] > 0) $topJail[$player['id']] = $jailStats['breakouts_successed']; } } if (time() - $player['last_active'] > 1800 && $player['wanted-level'] > 0) { $db->Query("UPDATE `[players]` SET `wanted-level`='0' WHERE `id`='".$player['id']."'"); } $economy = array(); if ($player['cash'] >= 100000) $economy['cash'] = $player['cash']; if ($player['bank'] >= 100000) $economy['bank'] = $player['bank']; if ($player['points'] >= 1) $economy['points'] = $player['points']; if (count($economy) > 0) $game_economy['players_economy'][$player['id']] = $economy; } foreach ($rankPositions as $position) { if ($position['new'] != $position['old']) { $db->Query("UPDATE `[players]` SET `rank_pos`='".$position['new']."' WHERE `id`='".$position['player']."'"); } } arsort($topJail); foreach (array_slice($topJail, 0, 10, true) as $p_id => $num) { $game_stats['player_stats']['top_jail_breakouts'][] = array($p_id, $num); } /* MONEY STATS */ $sql = $db->Query("SELECT id,bank FROM `businesses` WHERE `active`='1'"); while ($firma = $db->FetchArray($sql)) { $game_stats['money_stats']['total'] += $firma['bank']; $game_stats['money_stats']['business'] += $firma['bank']; if (!in_array($firma['id'], $crew_businesses)) $cash_log += $firma['bank']; $economy = array(); $economy['bank'] = $firma['bank']; $game_economy['businesses_economy'][$firma['id']] = $economy; } $sql = $db->Query("SELECT id,bank FROM `coinroll` WHERE `active`='1'"); while ($firma = $db->FetchArray($sql)) { $game_stats['money_stats']['total'] += $firma['bank']; $game_stats['money_stats']['coinroll'] += $firma['bank']; if (!in_array($firma['id'], $crew_coinrolls)) $cash_log += $firma['bank']; $economy = array(); $economy['bank'] = $firma['bank']; $game_economy['coinroll'][$firma['id']] = $economy; } $sql = $db->Query("SELECT id,bank,total_rankpoints FROM `[families]` WHERE `active`='1'"); while ($family = $db->FetchArray($sql)) { $game_stats['money_stats']['total'] += $family['bank']; $game_stats['money_stats']['families'] += $family['bank']; if (!in_array($family['id'], $crew_families)) $cash_log += $family['bank']; $economy = array(); $economy['bank'] = $family['bank']; $game_economy['families_economy'][$family['id']] = $economy; if ($family_rankpoints[$family['id']] != $family['total_rankpoints']) { $db->Query("UPDATE `[families]` SET `total_rankpoints`='".$family_rankpoints[$family['id']]."' WHERE `id`='".$family['id']."'"); } } $sql = $db->Query("SELECT players,entry_sum FROM `numbers_game` WHERE `active`='1'"); while ($game = $db->FetchArray($sql)) { $cash_log += count(unserialize($game['players'])) * $game['entry_sum']; } $sql = $db->Query("SELECT dealer_bet,opponent_bet FROM `blackjack` WHERE `active`='1'"); while ($game = $db->FetchArray($sql)) { $cash_log += $game['dealer_bet'] + $game['opponent_bet']; } $sql = $db->Query("SELECT bids,payment_method FROM `auctions` WHERE `active`='1'"); while ($auction = $db->FetchArray($sql)) { $bids = unserialize($auction['bids']); $payment = $auction['payment_method']; $highest = array(); foreach ($bids as $bid) { if ($bid['sum'] > $highest['bid']) $highest = $bid; } if ($payment == 'cash') { $cash_log += $highest['bid']; } else { $points_log += $highest['bid']; } } /* MESSAGE STATS */ $message_senders = array(); $sql = $db->Query("SELECT creator FROM `messages`"); while ($message = $db->FetchArray($sql)) { $game_stats['messages_stats']['num_total']++; if ($players[$message['creator']]['health'] > 0 && $players[$message['creator']]['level'] > 0) $message_senders[$message['creator']]++; } /* FORUM STATS */ $creators = array(); $sql = $db->Query("SELECT playerid FROM `forum_topics`"); while ($topic = $db->FetchArray($sql)) { $game_stats['forum_stats']['num_total']++; $game_stats['forum_stats']['threads_num_total']++; $creators[$topic['playerid']]++; } $sql = $db->Query("SELECT playerid FROM `forum_replies`"); while ($post = $db->FetchArray($sql)) { $game_stats['forum_stats']['num_total']++; $game_stats['forum_stats']['posts_num_total']++; if ($players[$post['playerid']]['health'] > 0 && $players[$post['playerid']]['level'] > 0) $creators[$post['playerid']]++; } /* LOGEVENTS STATS */ $game_stats['logevent_stats']['num_total'] = $db->GetNumRows($db->Query("SELECT id FROM `mafiazon_log`.`logevents`")); $db->Query("UPDATE `game_stats` SET `user_stats`='".serialize($game_stats['user_stats'])."', `player_stats`='".serialize($game_stats['player_stats'])."', `money_stats`='".serialize($game_stats['money_stats'])."', `online_stats`='".serialize($game_stats['online_stats'])."', `messages_stats`='".serialize($game_stats['messages_stats'])."', `forum_stats`='".serialize($game_stats['forum_stats'])."', `logevent_stats`='".serialize($game_stats['logevent_stats'])."', `last_updated`='".time()."'"); $db->Query("INSERT INTO `database`.`game_economy` (`money`, `points`, `time`, `players_economy`, `businesses_economy`, `families_economy`) VALUES ('".$cash_log."', '".$points_log."', '".time()."', '".serialize($game_economy['players_economy'])."', '".serialize($game_economy['businesses_economy'])."', '".serialize($game_economy['families_economy'])."')"); $db->Close(); echo 'OK'; ?> Her har du den relevante koden Lenke til kommentar
KRIZx Skrevet 29. november 2012 Forfatter Del Skrevet 29. november 2012 Greia nå er at hvis jeg går inn på statistikk , så står det fremdeles "Åpnet 1.Januar 1970 også klokkeslet.. hva må jeg endre i databasen for å få riktid tid? Lenke til kommentar
Feh Skrevet 29. november 2012 Del Skrevet 29. november 2012 (endret) Litt vanskelig å se sånn i farten. Kan du gå inn i databasen og se hva slags verdi som faktisk står i last_updated feltet i game_stats tabellen? Sånn umiddelbart ser jeg ikke noe feil i koden du postet sist. I updatesetningen til game_stats står det `last_updated`='".time()."'"); Som vil resultere i at verdien som settes inn er antall sekunder siden Unix Epoch (typisk en verdi som ligner på dette: 1353971772). Samme funksjon brukes i INSERT setningen. Jeg er ikke helt sikker her, men hvis verdien som er lagret i feltet IKKE er et nummer som stemmer med det jeg skrev i parentes vil den vise 01-01-1970 når scriptet prøver å konvertere en ugyldig verdi. Videre så ser jeg dette fra scriptet du postet tidligere og lurte på hvorfor det står 0 spillere 01-01-1970: <?=View::Time($online_stats['highest_online'][1], true)?> Noe sier meg at denne linjen ikke returnerer et gyldig UNIX Timestamp fra tabellen (refererer du til feil felt?), ergo blir det som eventuelt står der forkastet og output blir 01-01-1970. Sjekk hva som faktisk står i 'highest_online' i tabellen (tipper det er i online_stats tabellen?). Endret 29. november 2012 av Feh Lenke til kommentar
KRIZx Skrevet 29. november 2012 Forfatter Del Skrevet 29. november 2012 last_updated timestamp ON UPDATE CURRENT_TIMESTAMP Nei CURRENT_TIMESTAMP Dette er verdien som står i game_stats last_updated Referer ikke til feil felt, men tror muligens jeg har gitt last_updated feil verdi.. Lenke til kommentar
Feh Skrevet 29. november 2012 Del Skrevet 29. november 2012 (endret) Det der er ikke verdi(er) fra feltet, det der er bare feltets "properties". Jeg tenker på faktisk data som ligger lagret i databasefeltet. Men hvis du har satt feltet til ON UPDATE CURRENT_TIMESTAMP kan det hende du må sende null eller '' istedenfor 'time()' fra scriptet. time(); returnerer som kjent et UNIX timestamp, mens CURRENT_TIMESTAMP i databasen har en formatert dato (default er vel YYYY-MM-DD HH:MM:SS) Endret 29. november 2012 av Feh Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå