abonnement Unibet Coolblue
  zondag 8 januari 2012 @ 23:37:21 #251
75592 GlowMouse
l'état, c'est moi
pi_106586019
Precies zo. Alleen dan nog eentje bij het resultaat optellen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106586176
quote:
14s.gif Op zondag 8 januari 2012 23:37 schreef GlowMouse het volgende:
Precies zo. Alleen dan nog eentje bij het resultaat optellen.
Oke, bedankt! :)
je houdt het trouwens wel lang vol om iemand niet het antwoord te geven, maar zelf te laten maken :P
pi_106586476
quote:
0s.gif Op zondag 8 januari 2012 23:40 schreef dirkjo het volgende:

[..]

Oke, bedankt! :)
je houdt het trouwens wel lang vol om iemand niet het antwoord te geven, maar zelf te laten maken :P
Veel doeltreffender. :)
pi_106586574
quote:
14s.gif Op zondag 8 januari 2012 23:37 schreef GlowMouse het volgende:
Precies zo. Alleen dan nog eentje bij het resultaat optellen.
Er is nu alleen wel één probleempje. Ik vertelde net dat die oude query mij dezelfde waarde geeft als wanneer ik de hele lijst zou echo'en. Deze doet dat niet :P

Je zei dat dat bij die oude query toevallig zo gebeurde, maar na een flink aantal refreshes blijft die lijst precies hetzelfde.

//edit

Deze manier geeft zelfs bij meerdere nummers dezelfde rank, terwijl dit toch echt iets is wat niet mag gebeuren :o
pi_106586584
quote:
0s.gif Op zondag 8 januari 2012 23:46 schreef Diabox het volgende:

[..]

Veel doeltreffender. :)
Compleet waar :)
  zondag 8 januari 2012 @ 23:50:59 #256
75592 GlowMouse
l'état, c'est moi
pi_106586661
quote:
0s.gif Op zondag 8 januari 2012 23:48 schreef dirkjo het volgende:

[..]

Er is nu alleen wel één probleempje. Ik vertelde net dat die oude query mij dezelfde waarde geeft als wanneer ik de hele lijst zou echo'en. Deze doet dat niet :P
Dan moet je die andere lijst aanpassen zodat hij zo wordt:
1. song12 met een socore van 34
2. song3 met een socore van 24
2. song6 met een socore van 24
4. song3 met een socore van 3
quote:
Je zei dat dat bij die oude query toevallig zo gebeurde, maar na een flink aantal refreshes blijft die lijst precies hetzelfde.
En toch heb je geen garantie dat het niet verandert.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106586844
Check je ook even m'n edit. Heb ik iets fout gedaan dat dit gebeurd?
pi_106586854
quote:
0s.gif Op zondag 8 januari 2012 23:48 schreef dirkjo het volgende:

[..]

Er is nu alleen wel één probleempje. Ik vertelde net dat die oude query mij dezelfde waarde geeft als wanneer ik de hele lijst zou echo'en. Deze doet dat niet :P

Je zei dat dat bij die oude query toevallig zo gebeurde, maar na een flink aantal refreshes blijft die lijst precies hetzelfde.

//edit

Deze manier geeft zelfs bij meerdere nummers dezelfde rank, terwijl dit toch echt iets is wat niet mag gebeuren :o
Je doet het nu door te selecteren op het aantal likes?

1
2
3
4
5
6
7
8
SET @rownum := 0;

SELECT * 
FROM (
SELECT @rownum := @rownum+1 AS song_rank, likes
FROM songs ORDER BY likes DESC
) AS song_score
WHERE songID = " . $songID

Bovenstaande zou je de rank terug moeten geven adhv het songid.

[ Bericht 6% gewijzigd door The_Terminator op 09-01-2012 00:06:46 ]
pi_106586939
quote:
0s.gif Op zondag 8 januari 2012 23:55 schreef The_Terminator het volgende:

[..]

Je doet het nu door te selecteren op het aantal likes?
[ code verwijderd ]

Bovenstaande zou je de rank terug moeten geven adhv het songid.
Ik gebruik nu de manier van GM, een paar posts terug.
  maandag 9 januari 2012 @ 00:02:57 #260
75592 GlowMouse
l'état, c'est moi
pi_106587129
Wijzig
SELECT songID FROM songs ORDER BY `likes` DESC
in
SELECT songID FROM songs ORDER BY `likes` DESC,songID DESC

En
SELECT COUNT(*) AS rank FROM songs WHERE likes > ...
in
SELECT COUNT(*) AS rank FROM songs WHERE likes > ... OR (likes = .... ANDS songID > ....)
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106587303
quote:
0s.gif Op zondag 8 januari 2012 23:57 schreef dirkjo het volgende:

[..]

Ik gebruik nu de manier van GM, een paar posts terug.
Ah, ok. Ik heb mijn code zojuist wat aangepast en getest. Het functioneerd goed en geeft de positie terug adhv een gegeven songID, zoals je dat in je eerste versie had.
pi_106587321
quote:
0s.gif Op maandag 9 januari 2012 00:02 schreef GlowMouse het volgende:
Wijzig
SELECT songID FROM songs ORDER BY `likes` DESC
in
SELECT songID FROM songs ORDER BY `likes` DESC,songID DESC

En
SELECT COUNT(*) AS rank FROM songs WHERE likes > ...
in
SELECT COUNT(*) AS rank FROM songs WHERE likes > ... OR (likes = .... ANDS songID > ....)
Held :)
pi_106587341
quote:
0s.gif Op maandag 9 januari 2012 00:07 schreef The_Terminator het volgende:

[..]

Ah, ok. Ik heb mijn code zojuist wat aangepast en getest. Het functioneerd goed en geeft de positie terug adhv een gegeven songID, zoals je dat in je eerste versie had.
Dit gebruik ik nu en werkt:
1
2
3
<?php
$rankQuery 
mysql_query("SELECT COUNT(*) AS rank FROM songs WHERE `likes` > "$likes" OR (`likes` = '"$likes ."' AND `songID` > "$songID .")");
?>

Still, thanks. :)
  maandag 9 januari 2012 @ 00:09:59 #264
75592 GlowMouse
l'état, c'est moi
pi_106587377
Die van T_T werkt ook, maar die van mij is uiteraard sneller.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106587491
quote:
7s.gif Op maandag 9 januari 2012 00:09 schreef GlowMouse het volgende:
maar die van mij is uiteraard sneller.
True.
pi_106587551
Nooit verwacht dat m'n zondag avond nog leerzaam zou zijn :7
pi_106617797
Als we dan toch over COUNT hebben. Is het verstandiger om gebruik te maken van de COUNT functie om te kijken of een user bestaat, dan gebruik je maken van mysql_num_rows? Ik gebruik nu die laatste, maar dit lijkt me (nu ik een beetje door heb hoe COUNT werkt) vrij omslachtig.
  maandag 9 januari 2012 @ 21:13:20 #268
75592 GlowMouse
l'état, c'est moi
pi_106617981
Dat is het inderdaad. Als jij een query zonder COUNT(*) doet dan gaan alle rijen van MySQL naar PHP zodat PHP ze kan tellen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106618465
quote:
0s.gif Op maandag 9 januari 2012 21:13 schreef GlowMouse het volgende:
Dat is het inderdaad. Als jij een query zonder COUNT(*) doet dan gaan alle rijen van MySQL naar PHP zodat PHP ze kan tellen.
Oke, duidelijk! :)
  FOK!-Schrikkelbaas dinsdag 10 januari 2012 @ 08:53:37 #270
1972 Swetsenegger
Egocentrische Narcist
pi_106631735
Ik heb de volgende query

1
2
3
4
5
SELECT Naam, Challenge, Voortgang, (
Voortgang / ( Challenge /100 )
) AS Percentage
FROM hardlopen
ORDER BY Naam

Maar Percentage is dan tot 8 decimalen achter de komma. Kan ik dit eenvoudig beperken tot 2?
  dinsdag 10 januari 2012 @ 08:54:21 #271
84244 Scorpie
Abject en infaam!
pi_106631749
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  dinsdag 10 januari 2012 @ 08:55:53 #272
12221 Tijn
Powered by MS Paint
pi_106631779
Beetje detail is niet verkeerd toch, Swets? B-)
  FOK!-Schrikkelbaas dinsdag 10 januari 2012 @ 08:56:19 #273
1972 Swetsenegger
Egocentrische Narcist
pi_106631789
quote:
Ik had de 2e parameter bij ROUND gemist in mijn zoektocht, bedankt!
pi_106632090
Dit had je anders ook kunnen gebruiken: http://nl.php.net/number_format
  dinsdag 10 januari 2012 @ 09:31:05 #275
4159 GI
Nee ik heet geen JOE
pi_106632385
Of http://php.net/manual/en/function.round.php in php als je de db server niet je rekenwerk wil laten doen :)
  FOK!-Schrikkelbaas dinsdag 10 januari 2012 @ 09:39:18 #276
1972 Swetsenegger
Egocentrische Narcist
pi_106632552
Ja de op functie ken ik, maar in dit geval was het makkelijker in mysql.
pi_106633921
quote:
0s.gif Op dinsdag 10 januari 2012 09:39 schreef Swetsenegger het volgende:
Ja de op functie ken ik, maar in dit geval was het makkelijker in mysql.
Ik zou dit soort taken niet bij de database server neerleggen. Queries moet je zo licht mogelijk schrijven, zodat je de database server zo min mogelijk lastig valt.
  FOK!-Schrikkelbaas dinsdag 10 januari 2012 @ 10:43:11 #278
1972 Swetsenegger
Egocentrische Narcist
pi_106633967
quote:
0s.gif Op dinsdag 10 januari 2012 10:41 schreef Pakspul het volgende:

[..]

Ik zou dit soort taken niet bij de database server neerleggen. Queries moet je zo licht mogelijk schrijven, zodat je de database server zo min mogelijk lastig valt.
Geloof me, m'n server krijgt het er echt niet warm van :)
pi_106634118
quote:
1s.gif Op dinsdag 10 januari 2012 10:43 schreef Swetsenegger het volgende:

[..]

Geloof me, m'n server krijgt het er echt niet warm van :)
Dat begrijp ik, maar het gaat er om dat je begrijpt waarom je die dingen daar niet moet neerleggen :P Je kunt het je beter direct goed aanleren :)
  dinsdag 10 januari 2012 @ 10:50:23 #280
12221 Tijn
Powered by MS Paint
pi_106634134
quote:
0s.gif Op dinsdag 10 januari 2012 10:49 schreef Pakspul het volgende:

[..]

Dat begrijp ik, maar het gaat er om dat je begrijpt waarom je die dingen daar niet moet neerleggen :P Je kunt het je beter direct goed aanleren :)
Het is niet fout om je query zo te formuleren dat de data die eruit komt zo nuttig mogelijk is in je applicatie.
  dinsdag 10 januari 2012 @ 10:51:05 #281
4159 GI
Nee ik heet geen JOE
pi_106634147
quote:
0s.gif Op dinsdag 10 januari 2012 10:49 schreef Pakspul het volgende:

[..]

Dat begrijp ik, maar het gaat er om dat je begrijpt waarom je die dingen daar niet moet neerleggen :P Je kunt het je beter direct goed aanleren :)
Swets is al een paar stapjes verder dan aanleren ;)

En ik ben het met Tijn eens. Het is niet per definitie fout om de DB server te laten rekenen.
pi_106634218
quote:
2s.gif Op dinsdag 10 januari 2012 10:50 schreef Tijn het volgende:

[..]

Het is niet fout om je query zo te formuleren dat de data die eruit komt zo nuttig mogelijk is in je applicatie.
Het is niet fout, maar kwa belasting wil je het gewoon niet. Bij hobby projecten maakt het uiteraard niets uit waar je het doet en als die het makkelijkste voor je is dan moet je het vooral doen. Maar als je grote projecten draait dan kunnen dit wel winst punten zijn.

Zelfde als in hobby projecten kun je best: SELECT * doen, maar het is beter om alleen de velden op te halen die nodig zijn.
  dinsdag 10 januari 2012 @ 10:55:00 #283
84244 Scorpie
Abject en infaam!
pi_106634231
quote:
3s.gif Op dinsdag 10 januari 2012 10:51 schreef GI het volgende:

[..]

Swets is al een paar stapjes verder dan aanleren ;)

En ik ben het met Tijn eens. Het is niet per definitie fout om de DB server te laten rekenen.
Dat dus.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  dinsdag 10 januari 2012 @ 10:56:53 #284
84244 Scorpie
Abject en infaam!
pi_106634268
quote:
0s.gif Op dinsdag 10 januari 2012 10:54 schreef Pakspul het volgende:

[..]

Het is niet fout, maar kwa belasting wil je het gewoon niet. Bij hobby projecten maakt het uiteraard niets uit waar je het doet en als die het makkelijkste voor je is dan moet je het vooral doen. Maar als je grote projecten draait dan kunnen dit wel winst punten zijn.

Zelfde als in hobby projecten kun je best: SELECT * doen, maar het is beter om alleen de velden op te halen die nodig zijn.
Definieer 'belasting'.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  dinsdag 10 januari 2012 @ 10:57:03 #285
75592 GlowMouse
l'état, c'est moi
pi_106634272
quote:
0s.gif Op dinsdag 10 januari 2012 10:41 schreef Pakspul het volgende:

[..]

Ik zou dit soort taken niet bij de database server neerleggen. Queries moet je zo licht mogelijk schrijven, zodat je de database server zo min mogelijk lastig valt.
Als je round door je db-clients wilt laten uitrekenen, ben je verkeerd bezig.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 10 januari 2012 @ 11:00:48 #286
12221 Tijn
Powered by MS Paint
pi_106634359
quote:
0s.gif Op dinsdag 10 januari 2012 10:54 schreef Pakspul het volgende:

[..]

Het is niet fout, maar kwa belasting wil je het gewoon niet.
Ik denk eigenlijk dat de database een stuk efficiënter z'n eigen data kan manipuleren dan de applicatie die deze data verder verwerkt.
  dinsdag 10 januari 2012 @ 11:02:25 #287
84244 Scorpie
Abject en infaam!
pi_106634391
quote:
2s.gif Op dinsdag 10 januari 2012 11:00 schreef Tijn het volgende:

[..]

Ik denk eigenlijk dat de database een stuk efficiënter z'n eigen data kan manipuleren dan de applicatie die deze data verder verwerkt.
quote:
0s.gif Op dinsdag 10 januari 2012 10:57 schreef GlowMouse het volgende:

[..]

Als je round door je db-clients wilt laten uitrekenen, ben je verkeerd bezig.
Indeed.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  dinsdag 10 januari 2012 @ 11:03:25 #288
4159 GI
Nee ik heet geen JOE
pi_106634430
quote:
2s.gif Op dinsdag 10 januari 2012 11:00 schreef Tijn het volgende:

[..]

Ik denk eigenlijk dat de database een stuk efficiënter z'n eigen data kan manipuleren dan de applicatie die deze data verder verwerkt.
Ja, dat is wel waar. Maar het hangt compleet van de situatie af of je dergelijke dingen laat berekenen door de DBengine of door de applicatie zelf. Als het puur en alleen om weergave gaat zou ik zeggen dat het door de applicatie gedaan moet worden. Als het om tussentabellen gaat of iets in die geest dan kan ik me nog voorstellen dat je het de DBengine laat doen.
  dinsdag 10 januari 2012 @ 11:04:02 #289
4159 GI
Nee ik heet geen JOE
pi_106634449
quote:
0s.gif Op dinsdag 10 januari 2012 11:02 schreef Scorpie het volgende:

[..]

[..]

Indeed.
Das knap, het eens zijn met twee quotes die elkaar tegenspreken.
  dinsdag 10 januari 2012 @ 11:04:42 #290
12221 Tijn
Powered by MS Paint
pi_106634468
quote:
3s.gif Op dinsdag 10 januari 2012 11:04 schreef GI het volgende:

[..]

Das knap, het eens zijn met twee quotes die elkaar tegenspreken.
Nee?
pi_106634528
quote:
0s.gif Op dinsdag 10 januari 2012 10:56 schreef Scorpie het volgende:

[..]

Definieer 'belasting'.
Het is rekenkracht wat je kwijt bent, bij 10 request per minuut maakt het geen fuck uit, maar als je request omhoog gaan dan wil je niet dat je DB server met dit soort dingen bezig is.
quote:
0s.gif Op dinsdag 10 januari 2012 10:57 schreef GlowMouse het volgende:

[..]

Als je round door je db-clients wilt laten uitrekenen, ben je verkeerd bezig.
Dat probeer ik hier te zeggen.
pi_106634551
quote:
5s.gif Op dinsdag 10 januari 2012 11:04 schreef Tijn het volgende:

[..]

Nee?
ja, want deze eerste zegt. Leg het neer bij de DB en de andere zegt doe het niet want dan ben je verkeerd bezig.
  dinsdag 10 januari 2012 @ 11:08:13 #293
12221 Tijn
Powered by MS Paint
pi_106634580
quote:
0s.gif Op dinsdag 10 januari 2012 11:07 schreef Pakspul het volgende:

[..]

ja, want deze eerste zegt. Leg het neer bij de DB en de andere zegt doe het niet want dan ben je verkeerd bezig.
Je begrijpt het verschil tussen server en client?
  dinsdag 10 januari 2012 @ 11:10:09 #294
75592 GlowMouse
l'état, c'est moi
pi_106634639
quote:
2s.gif Op dinsdag 10 januari 2012 11:00 schreef Tijn het volgende:

[..]

Ik denk eigenlijk dat de database een stuk efficiënter z'n eigen data kan manipuleren dan de applicatie die deze data verder verwerkt.
Dat is niet altijd een criterium omdat je vaak eenvoudig servers waar de applicatie op draaien kunt bijplaatsen.
quote:
0s.gif Op dinsdag 10 januari 2012 11:06 schreef Pakspul het volgende:

[..]

Het is rekenkracht wat je kwijt bent, bij 10 request per minuut maakt het geen fuck uit, maar als je request omhoog gaan dan wil je niet dat je DB server met dit soort dingen bezig is.
Geef me maar root-toegang op een server die 50.000 queries per seconde afhandelt, zal ik je 10 dingen aanwijzen die elk een miljoen keer meer opleveren.
quote:
Dat probeer ik hier te zeggen.
Niet waar, jij wilt het van je db-server naar je db-client verplaatsen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 10 januari 2012 @ 11:14:34 #295
4159 GI
Nee ik heet geen JOE
pi_106634769
Ah, dan las ik het verkeerd. Ik denk trouwens wel dat er geen gouden regel is voor deze problematiek.
  dinsdag 10 januari 2012 @ 11:15:49 #296
12221 Tijn
Powered by MS Paint
pi_106634811
quote:
3s.gif Op dinsdag 10 januari 2012 11:14 schreef GI het volgende:
Ah, dan las ik het verkeerd. Ik denk trouwens wel dat er geen gouden regel is voor deze problematiek.
Dat denk ik ook. Het is ook duidelijk dat je moet proberen een trage query te voorkomen natuurlijk. Maar dat doe je niet door de round-functie van je database te vermijden.
pi_106635092
quote:
10s.gif Op dinsdag 10 januari 2012 11:08 schreef Tijn het volgende:

[..]

Je begrijpt het verschil tussen server en client?
Ik weet niet wat jij bedoelt met DB-server en DB-client.

Maar ik heb even een test uitgevoerd. 100 x een query opgehaald waar 2x50 float in voorkomen. In de ene heb ik hem door PHP laten afronden en in de andere heb ik het door MySQL laten doen. En het verschil is dat PHP er 35% langer over doet wanneer deze zelf de getallen nog moet afronden.

Dan had Tijn het dus toch goed dat de DB-server zelf efficiënter zijn data kan manipuleren.

Nouja, daar zat ik er dus naast ik dacht altijd dat je zulke functie niet daar moest uitvoeren. Vraag ik mij nu alleen af of dit ook geldt voor berekeningen. :P Straks maar eens doen :+ eerst koffie!
  dinsdag 10 januari 2012 @ 11:28:02 #298
84244 Scorpie
Abject en infaam!
pi_106635128
Kom op, een DB-server en een DB-client zijn twee hele normale, gangbare begrippen.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  dinsdag 10 januari 2012 @ 11:28:11 #299
12221 Tijn
Powered by MS Paint
pi_106635131
quote:
0s.gif Op dinsdag 10 januari 2012 11:26 schreef Pakspul het volgende:

[..]

Ik weet niet wat jij bedoelt met DB-server en DB-client.
De machine waar de database zelf op staat is de databaseserver. De machine waar de applicatie op draait die met de database verbinding heeft is de databaseclient.
  dinsdag 10 januari 2012 @ 11:28:30 #300
84244 Scorpie
Abject en infaam!
pi_106635141
quote:
0s.gif Op dinsdag 10 januari 2012 11:26 schreef Pakspul het volgende:

[..]

Ik weet niet wat jij bedoelt met DB-server en DB-client.

Maar ik heb even een test uitgevoerd. 100 x een query opgehaald waar 2x50 float in voorkomen. In de ene heb ik hem door PHP laten afronden en in de andere heb ik het door MySQL laten doen. En het verschil is dat PHP er 35% langer over doet wanneer deze zelf de getallen nog moet afronden.

Dan had Tijn het dus toch goed dat de DB-server zelf efficiënter zijn data kan manipuleren.

Nouja, daar zat ik er dus naast ik dacht altijd dat je zulke functie niet daar moest uitvoeren. Vraag ik mij nu alleen af of dit ook geldt voor berekeningen. :P Straks maar eens doen :+ eerst koffie!
100x zegt niks. Doe hem eens 100.000 keer.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')