Вопрос о sizeof()
#1

Ребят, драсте ещё раз.
Меня озадачил вопрос, как можно вернуть sizeof из таблицы MySQL?
Мои догадки ведут меня на создание нового паблика который получает кол-во строк из таблицы и возвращает их, прально?
Допустим, for(new i = 0; i < sizeof(GetMysqlRows(tablename)); i++) - будет ли работать данная функция?
tablename - название таблицы.
Reply
#2

только намекну... помучий, возможно это совсем не то, покажи на примере что ты хочешь!!
Quote:

GROUP BY

Reply
#3

я уже сделал что то подобное
Код:
public GetMysqlNumRows(table[])
{
	new query[64];
	format(query,sizeof(query),"SELECT * FROM %s",table);
	if (samp_mysql_num_rows()==0)
	{
		return 0;
	}
	else
	{
		return samp_mysql_num_rows();
	}
}
на работоспособность не проверял ещё. Иду в правильном направлении?
Reply
#4

SELECT COUNT(*) FROM %s
Reply
#5

Спасибо серафим, так будет быстрее?
Reply
#6

Quote:
Originally Posted by Serafim_sd
Посмотреть сообщение
SELECT COUNT(*) FROM %s
только наверно все таки SELECT COUNT(*) as count FROM %s иначе замучаются потом получать поле
Reply
#7

Quote:

Меня озадачил вопрос, как можно вернуть sizeof из таблицы MySQL?

sizeof функция компилятора, которая определяет размер указанного массива и при компилировании это sizeof заменяется на цифру - размер массива. Если размеры массива не указаны, например,
pawn Код:
public OnPlayerText(playerid, text[])
, то попыка заюзать sizeof(text) выдаст ошибку. Чтобы узнать размер массива во время работы мода, надо юзать strlen()

Edit: ах, да. strlen возвращает не максимальный размер самого массива, а размер массива, то есть на сколько он заполнен
Reply
#8

Quote:
Originally Posted by EvgeN 1137
Посмотреть сообщение
Чтобы узнать размер массива во время работы мода, надо юзать strlen()
strlen не определяет размер массива, она определяет длину строки в массиве. Но с учетом того что передаваемая строка обычно равна длине массива, многие используют данную функция неправильно.
Reply
#9

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
strlen не определяет размер массива, она определяет длину строки в массиве. Но с учетом того что передаваемая строка обычно равна длине массива, многие используют данную функция неправильно.
я уже это написал в своём отредактированном посте... Так что лучше взять массив побольше (логически подумать, какой будет максимальный размер таблицы), туда загрузить таблицу из MySQL и вычесть размер strlen'ом

P.S. я в MySQL дуб, так что мой текст может быть бредом
Reply
#10

Quote:
Originally Posted by EvgeN 1137
Посмотреть сообщение
я уже это написал в своём отредактированном посте... Так что лучше взять массив побольше (логически подумать, какой будет максимальный размер таблицы), туда загрузить таблицу из MySQL и вычесть размер strlen'ом

P.S. я в MySQL дуб, так что мой текст может быть бредом
решение написано выше, мог не утруждать себя последним постом.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)