topmas38
Gebruiker
- Lid geworden
- 14 jul 2002
- Berichten
- 291
Dit is een behoorlijk lap tekst die je kan overslaan als je geen zin hebt om het te lezen. (achtergrondinfo)
Begin in dat geval vanaf de rode streepjes.
- - -
Ik ben iets aan het schrijven voor mijn gameserver dat de Top15 van de beste spelers automatisch naar mijn website's database stuurt.
Hierbij gebruik ik een SQL module die in een andere thread zit, en daarom asynchronisch is tenopzichte van andere queries. Dit heeft als effect dat het moeilijk is om een REPLACE query uit te voeren op basis van de resultaten van een SELECT query, zoniet onmogelijk.
Nu wil ik behalve de normale statistieken ook de statistieken per wapen opslaan. Als primary key kan ik daarom niet het authid nemen, (wat een uniek nummer per speler is) omdat elke speler meerdere rijen heeft om alle wapens op te slaan. Ik gebruik dus nu een uniek auto-incrementing id om de wapens per speler te onderscheiden.
Het probleem is daarbij helaas dat de server niet weet onder welk uniek id hij de gegevens moet opslaan. Het is immers onmogelijk om te zien welk id nodig is omdat er geen SELECT queries gedaan kunnen worden.
Het komt hier op neer:
Ik wil een REPLACE query doen dat kan kiezen waar gereplaced wordt zoals als het bij UPDATE gebeurt:
Helaas kan ik geen UPDATE gebruiken omdat het ook kan voorkomen dat een speler voor het eerst komt spelen of dat hij voor het eerst een bepaald wapen gebruikt.
Voor de mensen die de achtergrondinfo niet gelezen hebben: Ik kan geen SELECT gebruiken om achter het id te komen!
Alvast bedankt
Begin in dat geval vanaf de rode streepjes.

- - -
Ik ben iets aan het schrijven voor mijn gameserver dat de Top15 van de beste spelers automatisch naar mijn website's database stuurt.
Hierbij gebruik ik een SQL module die in een andere thread zit, en daarom asynchronisch is tenopzichte van andere queries. Dit heeft als effect dat het moeilijk is om een REPLACE query uit te voeren op basis van de resultaten van een SELECT query, zoniet onmogelijk.
Nu wil ik behalve de normale statistieken ook de statistieken per wapen opslaan. Als primary key kan ik daarom niet het authid nemen, (wat een uniek nummer per speler is) omdat elke speler meerdere rijen heeft om alle wapens op te slaan. Ik gebruik dus nu een uniek auto-incrementing id om de wapens per speler te onderscheiden.
Het probleem is daarbij helaas dat de server niet weet onder welk uniek id hij de gegevens moet opslaan. Het is immers onmogelijk om te zien welk id nodig is omdat er geen SELECT queries gedaan kunnen worden.



Het komt hier op neer:
Ik wil een REPLACE query doen dat kan kiezen waar gereplaced wordt zoals als het bij UPDATE gebeurt:
Code:
UPDATE myTable SET hits = 5 WHERE authid = 'STEAM:0:1:2345' AND weaponId = 6
Helaas kan ik geen UPDATE gebruiken omdat het ook kan voorkomen dat een speler voor het eerst komt spelen of dat hij voor het eerst een bepaald wapen gebruikt.
Voor de mensen die de achtergrondinfo niet gelezen hebben: Ik kan geen SELECT gebruiken om achter het id te komen!
Alvast bedankt
