Ik heb al de hele nacht lopen googlen en kom er dus niet uit.
En ik hoop dus dat iemand mij op weg kan helpen hoe ik de xp trackers van die site of andere runescape xp trackers op mijn site kan laten showen
Die website en meerdere houden bij hoeveel experience ik per dag heb gehaald.
Nu wil ik dus ook zoiets op mijn site hebben voor de clan.
Alles wat in het groen staat dat heb ik zeg maar vandaag aan xp gekregen.
En dat wil ik dus eigenlijk hebben op mijn site dat ik ken zien hoeveel mijn clan leden zijn geleveld in paar dagen tijd.
Dan zou je elke dag een cronjob steeds de verschillen moeten laten uitrekenen, en die per user opslaan in de database.
?
Onbekende gebruiker
15-05-2015 13:03
Je noemt als optie dat je andere trackers op je eigen site wilt showen. Dat kan via een <iframe> en wat JavaScript om de tracker in beeld te scrollen. (geintje)
Maar je kan misschien beter gewoon een site (http://runetracker.org/groups.php) scrapen met cURL naar een database zoals - Aar - aangeeft en de inhoud op je eigen site publiceren.
Een andere (nog betere) optie zou kunnen zijn dat je bij Runescape gaat kijken of er een web API beschikbaar is om die informatie zelf op te halen. Ze publiceren wel highscores via een API, misschien is dat wat je zoekt?
-> http://services.runescape.com/m=rswiki/en/Hiscores_APIs
Ik heb er niet heel uitvoerig naar gekeken, maar ik denk dat je je informatie daar moet kunnen vinden. Runetracker.org heeft het toch ook ergens vandaan.. en anders kan je altijd proberen om ze te mailen en te vragen. Een beetje extra PR voor Runescape vinden ze vast niet erg.
Hoe kan ik de script nu laten kiezen voor de laatste Update_id en de vorige Update_id
Zodat ik daarna de Rank_xp van Update_id 1 van Update_id 2 kan aftrekken.
En elke x zodra er een nieuwe nieuwe Rank_xp en Update_id is dat de script dan ook die dan blijft zien dus dat die dan daarna 3 en 4 ziet en niet meer 1 en 2.
?
Onbekende gebruiker
15-05-2015 16:36
gewijzigd op 15-05-2015 16:38
Je bedoelt hoe de SQL-query er uit moet komen te zien?
SELECT
*
FROM
`LEVELS` AS `L1`
WHERE
`L1`.`update_id` = (
SELECT MAX(`L2`.`update_id`)
FROM `LEVELS` AS `L2`
WHERE `L1`.`id` = `L2`.`id`
GROUP BY `L2`.`id`
LIMIT 1
)
;
En dan iets vergelijkbaars doen in de volgende UNION SELECT met het voorlaatste `update_id` uit LEVELS.
Of een tweede query in PHP.
Oke ik heb het even geprobeert ziet dit er goed uit.
SELECT l.member_id as id,
m.name as name,
(max(l.xp) - min(l.xp)) as xp
from (
select u.id
from updates as u
order by u.id desc
limit 0,2
) u
join levels l
on l.update_id = u.id
join members m
on m.id = l.member_id
where l.skill_id = 1
group by l.member_id
order by xp desc
limit 0,3
[size=xsmall]Toevoeging op 16/05/2015 16:11:57:[/size]
Oke weer even een update alleen hij laat niks zien wat doe ik verkeerd ik ben net nieuw in deze query's met join en where etc.
<?php
$host_name = "localhost";
$database = ""; // Change your database name
$username = ""; // Your database user id
$password = ""; // Your password
//////// Do not Edit below /////////
try {
$dbo = new PDO('mysql:host='.$host_name.';dbname='.$database, $username, $password);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$sql = 'SELECT l.member_id as id,
m.name as name,
(max(l.xp) - min(l.xp)) as xp
from (
select u.id
from updates as u
order by u.id desc
limit 0,2
) u
join levels l
on l.update_id = u.id
join members m
on m.id = l.member_id
where l.skill_id = 1
group by l.member_id
order by xp desc
limit 0,3';
foreach ($dbo->query($sql) as $row) {
echo "<tr ><td>$row[name]</td><td>$row[xp]</td></tr>";
}
?>