Mysql subtract
Ik ben bezig met een website die gegevens op slaat 1 x per 24 uur.
Dit word in een database opgeslagen zie plaatje als volgs.
Nu heb ik dus een script dat elke 24 uur update naar de nieuwe statistieken die worden dus ook in de database geplaats na elke update word update_id met 1 getal verhoogt en dus de nieuwe statistieken er in gooi.
dus update_id= 1 member_id =1 xp = 1000
update_id= 2 member_id =1 xp = 1500
Hier gaaat het mis.
De script krijg ik niet voor elkaar om die laaste 2 update_id te selecteren en de xp van update id 1 van update id 2 af te trekken.
Hoe krijg ik dat nu voor elkaar dat de laaste 2 update id's de laaste 2 xp waardes van elkaar aftrekt
Dit is de sql die de gegevens in de database gooit
Code (php)
1
2
2
$sql = "INSERT INTO LEVELS(update_id, member_id, skill_id, level, xp)
VALUES('".$next_id."','".$id."','".$skillsss[$i]."','".$uitslag[$iii]."','".$uitslag[$iiiii]."')") or die("Het bericht kon niet verzonden worden.");
VALUES('".$next_id."','".$id."','".$skillsss[$i]."','".$uitslag[$iii]."','".$uitslag[$iiiii]."')") or die("Het bericht kon niet verzonden worden.");
Een kamaraad had mij iets op weggeholpen en een plaatje getuurd maar ik snap niet veel van sql join etc
Hij heeft het namelijk wel werkend zou iemand mij kennen helpen hoe ik dit voor elkaar kan krijgen ?
Super erg bedankt!
Gewijzigd op 06/07/2015 01:48:29 door Andytjuh Bruggeman
Ik zou beginnen om een datum-tijd op te nemen in je records anders is het onmogelijk om op een correcte wijze te bapalen welke 2 records de laatste waren.
De query die je kameraad gemaakt heeft zou moeten werken, tenzij je voor iedere gebruiker een ander id in de tabel updates hebt.
Alleen ik krijg het niet voor elkaar om iets te laten weergeven op een pagina pagina blijft wit.
<code]
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
36
37
38
39
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
36
37
38
39
<?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>";
}
?>
$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>";
}
?>
Gewijzigd op 06/07/2015 20:44:07 door andytjuh Bruggeman
Fatal error: Call to a member function fetch() on a non-object in /home/******/public_html/new.php on line 33
Gewijzigd op 07/07/2015 09:07:09 door Marthijn Buijs
Ik heb geen idee ik heb al van alles geprobeert en toen dacht ik vraag het hier wel even.