Hallo, ich wollte mal nachfragen, wie ich mit der R7 Version eine COUNT Abfrage mache...
Denn die Sache ist die: Ab R7 hat man Threaded Queries, daher kann ich caches nur in einem seperaten Callback holen.
Und da besteht das Problem, denn wie returne / gebe ich das Ergebnis des COUNTs zurück zur Original Abfrage?
Momentan sieht es so aus:
stock IsPlayerInDatabase(playerid)
{
new query[100+MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME],result;
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
mysql_format(true,query,"SELECT COUNT(*) as count FROM `User` WHERE `Name` = '%e'",playername);
mysql_function_query(connectionHandle,query,true,"OnLoadMySQL","dd",MySQL_IsPlayerInDatabase,result);
if(result) return 1;
else return 0;
}
public OnLoadMySQL(loadid,&result)
{
switch(loadid)
{
case MySQL_IsPlayerInDatabase:
{
new count[5];
cache_get_field_content(0,"count",count,connectionHandle);
if(strval(count)) result = 1;
else result = 0;
return 1;
}
}
return 1;
}
kann mir da jemand weiterhelfen?
Edit: Habs mal geprintet und es ist folgendes dabei rausgekommen:
Count wird richtig benutzt (Print im Callback OnLoadMySQL gibt 1 bei count raus), nur die result im IsPlayerInDatabase wird nicht gesetzt oO d.h. die variable wird nicht gesetzt, wie kann ich das ändern?
Liegt es evtl. daran, dass das nicht schnell genug gesetzt wird?