PDA

Просмотр полной версии : [Вопрос] подскажите с запросом



semen7907
30.05.2017, 14:11
Всем привет, необходимо подсчитать количество строк GangID и вывести в printf
пытался сам, но выводит лишь результат запроса 0/1





new
buffer[100];
format(buffer, sizeof(buffer), "SELECT COUNT(*) FROM `players` WHERE `GangID` = '%i'", PlayerInfo[playerid][GangID]);
new Result:gangID = sql_query(sqlconnection, buffer, QUERY_CACHED);

printf("count %d",sql_num_rows(gangID));

Long-
30.05.2017, 16:49
Ну правильно, ты же запрос делаешь на то "Прочитать все в таблице 'players' у одного игрока"

Возможно ты хотел сделать так?


new Result:gangID = sql_query(sqlconnection, "SELECT COUNT(*) FROM `players` WHERE `GangID` != 0", QUERY_CACHED);
printf("count %d",sql_num_rows(gangID));

semen7907
30.05.2017, 19:06
не совсем, в таблице players есть столбец GangID, я отправляю запрос с GangID, например `GangID` = '30'
и мне нужно посчитать, у скольких игроков в GangID записано 30, то есть ответ должен быть например 10, то есть у 10-ых игроков в GangID записано 30

DeimoS
30.05.2017, 19:18
new
buffer[100];
format(buffer, sizeof(buffer), "SELECT COUNT(*) AS count FROM players WHERE GangID = %i", PlayerInfo[playerid][GangID]);
new Result:gangID = sql_query(sqlconnection, buffer, QUERY_CACHED);
И после используй функцию для получения числа, указав поле с именем "count".
Пример для плагина от BlueG:

new count = cache_get_field_content_int(0, "count", mysql_connection_ID);


А твой код должен работать с таким запросом:

new
buffer[100];
format(buffer, sizeof(buffer), "SELECT 1 FROM players WHERE GangID = %i", PlayerInfo[playerid][GangID]);
new Result:gangID = sql_query(sqlconnection, buffer, QUERY_CACHED);

printf("count %d",sql_num_rows(gangID));

semen7907
30.05.2017, 20:17
Все получилось, спасибо