Код:
//========================================[CMD:SHOWFACTIONACTIVITY]============================================
CMD:showfactionactivity(playerid, params[])
{
if(IsPlayerConnected(playerid))
{
new jucator,numejucator[32],query[128],datastring[256],str[128], string[256];
if(sscanf(params, "u", jucator)) return SendClientMessage(playerid, COLOR_GRAD2, "{00FF00}Folosire:{FFFFFF} /showfactionactivity [PlayerID/PartOfName]");
GetPlayerName(jucator, numejucator, sizeof(numejucator));
format(query, sizeof(query), "SELECT * FROM `NewsReporterActivity` WHERE `Player` = '%s' AND `Command` = '/news' AND `ZI` = 'Monday'", numejucator);
mysql_tquery(handle,string, "", "");
mysql_store_result();
new dataluni = mysql_count_rows();
mysql_free_result();
format(query, sizeof(query), "SELECT * FROM `NewsReporterActivity` WHERE `Player` = '%s' AND `Command` = '/news' AND `ZI` = 'Tuesday'", numejucator);
mysql_tquery(handle,string, "", "");
mysql_store_result();
new datamarti = mysql_count_rows();
mysql_free_result();
format(query, sizeof(query), "SELECT * FROM `NewsReporterActivity` WHERE `Player` = '%s' AND `Command` = '/news' AND `ZI` = 'Wednesday'", numejucator);
mysql_tquery(handle,string, "", "");
mysql_store_result();
new datamiercuri = mysql_count_rows();
mysql_free_result();
format(query, sizeof(query), "SELECT * FROM `NewsReporterActivity` WHERE `Player` = '%s' AND `Command` = '/news' AND `ZI` = 'Thursday'", numejucator);
mysql_tquery(handle,string, "", "");
mysql_store_result();
new datajoi = mysql_count_rows();
mysql_free_result();
format(query, sizeof(query), "SELECT * FROM `NewsReporterActivity` WHERE `Player` = '%s' AND `Command` = '/news' AND `ZI` = 'Friday'", numejucator);
mysql_tquery(handle,string, "", "");
mysql_store_result();
new datavineri = mysql_count_rows();
mysql_free_result();
format(query, sizeof(query), "SELECT * FROM `NewsReporterActivity` WHERE `Player` = '%s' AND `Command` = '/news' AND `ZI` = 'Saturday'", numejucator);
mysql_tquery(handle,string, "", "");
mysql_store_result();
new datasambata = mysql_count_rows();
mysql_free_result();
format(query, sizeof(query), "SELECT * FROM `NewsReporterActivity` WHERE `Player` = '%s' AND `Command` = '/news' AND `ZI` = 'Sunday'", numejucator);
mysql_tquery(handle,string, "", "");
mysql_store_result();
new dataduminica = mysql_count_rows();
mysql_free_result();
new total = dataluni + datamarti + datamiercuri + datajoi + datavineri + datasambata + dataduminica;
format(str, sizeof(str), "{FFFFFF}Activitatea lui %s", numejucator);
format(datastring,sizeof(datastring)," Luni\t\t%d puncte\n Marti\t\t%d puncte\n Miercuri\t%d puncte\n Joi\t\t%d puncte\n Vineri\t\t%d puncte\n Sambata\t%d puncte\n Duminica\t%d puncte\n\n Total\t\t%d puncte\n ",dataluni, datamarti, datamiercuri, datajoi, datavineri, datasambata, dataduminica, total);
ShowPlayerDialog(playerid, 991, DIALOG_STYLE_MSGBOX, str, datastring,"Close","");
}
return 1;
}
//return /showfactionactivity
CMD:sfa(playerid, params[])
{
return cmd_showfactionactivity(playerid, params);
}
Ew. There's definitely better ways to do this. Please see the GROUP BY clause. Furthermore, it is okay to use num_rows as a byproduct, but it should never be used on its own to get a count of something. This leads to additional processing overhead and much more network traffic than needed. To count something, one uses the aggregate function COUNT().
Assuming that "ZI" (whatever that undescriptive name may represent) only contains weekday names, that should give you a result set that looks somewhat like this:
Not necessarily in that order.
Using the name as the lookup key is also really, really bad. Ideally, a player's name appears
and everything that is tied to the player must reference that table. But if I have to explain database logic to you, I'll still be busy tomorrow morning.