Hoi,
Ik ben sinds drie weken bezig met het leren van PHP om wat statistieken op te slaan en te weergeven. Dat is aardig gelukt maar het laden van de pagina is erg sloom aangezien ik veel query's moet doen.
Ik berekenen voor zes verschillende skills voor level 1-99 het gemiddeld aantal xp per uur. Ik kom dus totaal uit op 600 queries en nog wat berekeningen. Misschien kan dit makkelijker maar het lijkt mij in ieder geval handig om de data te cachen. Of een plaatje weergeven van de resultaten. Vervolgens die data gebruiken of het plaatje om de paar minuten refreshen.
Dus ik vraag mij af hoe ik dit het beste kan doen. Ik gebruik highcharts om de grafiek te tekenen.
PHP code:
In actie: http://obduro.org/scriptstats/jjsfighter.php
Ik zou mijn code graag optimaliseren. Zoals je merkt laadt alles nu erg langzaam in vergelijking met andere pagina's.
Ik ben sinds drie weken bezig met het leren van PHP om wat statistieken op te slaan en te weergeven. Dat is aardig gelukt maar het laden van de pagina is erg sloom aangezien ik veel query's moet doen.
Ik berekenen voor zes verschillende skills voor level 1-99 het gemiddeld aantal xp per uur. Ik kom dus totaal uit op 600 queries en nog wat berekeningen. Misschien kan dit makkelijker maar het lijkt mij in ieder geval handig om de data te cachen. Of een plaatje weergeven van de resultaten. Vervolgens die data gebruiken of het plaatje om de paar minuten refreshen.
Dus ik vraag mij af hoe ik dit het beste kan doen. Ik gebruik highcharts om de grafiek te tekenen.
PHP code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| //Blablabla include('functions.php'); // DATABASE CONNECTION $db_handle = mysqli_connect(*****) or die("Error connecting to database"); // Sum of all statistics $SQL = "SELECT SUM(runtime) AS total_runtime, SUM(attack_xp) AS total_attack_xp, SUM(strength_xp) AS total_strength_xp, SUM(defence_xp) AS total_defence_xp, SUM(ranged_xp) AS total_ranged_xp, SUM(magic_xp) AS total_magic_xp, SUM(hitpoints_xp) AS total_hitpoints_xp FROM jjsfighter"; $result = mysqli_query($db_handle, $SQL); if($result){ $row = mysqli_fetch_assoc($result); //Blablabla // Calculate xp/h statistics $skills = array("attack", "strength", "defence", "ranged", "magic", "hitpoints"); $xprates = array(array()); // Each skill for($i = 0; $i < sizeof($skills); $i++){ // Each lvl for($j = 1; $j < 100; $j++){ // Select total xp for that skill at that level $SQL = "SELECT SUM(" . $skills[$i] . "_xp) AS xp, SUM(runtime) AS time FROM jjsfighter WHERE " . $skills[$i] . "_lvl=$j AND " . $skills[$i] . "_xp > 0"; $result = mysqli_query($db_handle, $SQL); // Check if the query is correct if($result) { $row = mysqli_fetch_assoc($result); //Blablabla berekening(en) } } } } mysqli_close($dbhandle); //Blablabla |
In actie: http://obduro.org/scriptstats/jjsfighter.php
Ik zou mijn code graag optimaliseren. Zoals je merkt laadt alles nu erg langzaam in vergelijking met andere pagina's.
[ Voor 43% gewijzigd door RobIII op 18-10-2013 22:12 . Reden: Flink gesnoeid in irrelevante code ]