[Ajuda] Como diminuir essa consulta?
#1

Tentei dividir entre linhas, mas ainda ta dando que ta grande, o que eu to fazendo de errado?
Код:
(5611) : error 075: input line too long (after substitutions)
(5612) : error 037: invalid string (possibly non-terminated string)
(5612) : error 017: undefined symbol "INSERT"
(5612) : error 017: undefined symbol "INTO"
(5612) : fatal error 107: too many error messages on one line

5611= 	new query[1024];
5612 = 	format(query, sizeof(query), "INSERT INTO `factions` (`facname`, `membro1`, `membro2`, `membro3`, `membro4`, `membro5`, `membro6`, `membro7`, `membro8`, `membro9`, `membro10`, `membro11`, `membro12`, `membro13`, `membro14`, `membro15`, `cargo1`, `cargo2`, `cargo3`, `cargo4`, `cargo5`, `cargo6`, `cargo7`, `cargo8`, `cargo9`, `cargo10`, `cargo11`, `cargo12`, `cargo13`, `cargo14`, `cargo15`)	VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')"
Cуdigo completo:
Код:
	CMD:fcreate(playerid,params[])	{
		//new string[40],
		new query[128], localfname[32];
		if(sscanf(params,"s", localfname)) return SendClientMessage(playerid, -1, "Use: /fcreate [name]");
		//if(scorelevel[playerid] < 500) return SendClientMessage(playerid, COLOR_RED, "Vocк precisa ter score/level 500 para criar uma faction");
		if(GetPlayerMoneyEx(playerid) < 500000) return SendClientMessage(playerid, COLOR_RED, "You do not have 500.000");
		if(fmembro[playerid] > 0) return SendClientMessage(playerid, COLOR_RED, "Vocк jб tem uma faction");

		format(query,sizeof query,"SELECT COUNT(*) AS `exists` FROM factions WHERE facname='%s'",localfname);
		mysql_function_query(ConnectMYSQL,query,true,"r@MySQL_CheckFaction","ds",playerid, localfname);
		// /\ importante deixar o cache como TRUE.
		return 1;
	}
Код:
public r@MySQL_CheckFaction(playerid, name[]) {
	new field[11], exists;
	cache_get_field_content(0, "exists", field, ConnectMYSQL);
	exists = strval(field);

	if(exists) {
		// jб existe
		return 1;
	}
	
	new cargocinco = 5;
	new cargozero = 0;
	
	new ept[30];
	ept = "Empty";
	
	new seunome[30];
	seunome = PlayerName(playerid);

	new query[1024];
	format(query, sizeof(query), "INSERT INTO `factions` (`facname`, `membro1`, `membro2`, `membro3`, `membro4`, `membro5`, `membro6`, `membro7`, `membro8`, `membro9`, `membro10`, `membro11`, `membro12`, `membro13`, `membro14`, `membro15`, `cargo1`, `cargo2`, `cargo3`, `cargo4`, `cargo5`, `cargo6`, `cargo7`, `cargo8`, `cargo9`, `cargo10`, `cargo11`, `cargo12`, `cargo13`, `cargo14`, `cargo15`)	VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')"
	, 
		name, 
		seunome, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		ept, 
		cargocinco, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero, 
		cargozero);
	mysql_function_query(ConnectMYSQL,query,true,"r@MySQL_CreateFaction","d",playerid);
	
	new facid = fmembro[playerid];
	FactionInfo[facid][facname][0] = EOS; // clear string
	strcat(FactionInfo[facid][facname], name, 32); // 32 is the size of facname[32] in enum
	
	
	FactionInfo[facid][membro1] = seunome;
	FactionInfo[facid][membro2] = ept;
	FactionInfo[facid][membro3] = ept;
	FactionInfo[facid][membro4] = ept;
	FactionInfo[facid][membro5] = ept;
	FactionInfo[facid][membro6] = ept;
	FactionInfo[facid][membro7] = ept;
	FactionInfo[facid][membro8] = ept;
	FactionInfo[facid][membro9] = ept;
	FactionInfo[facid][membro10] = ept;
	FactionInfo[facid][membro11] = ept;
	FactionInfo[facid][membro12] = ept;
	FactionInfo[facid][membro13] = ept;
	FactionInfo[facid][membro14] = ept;
	FactionInfo[facid][membro15] = ept;
	FactionInfo[facid][facname] = name;
	
	FactionInfo[facid][cargo1] = cargocinco;
	FactionInfo[facid][cargo2] = cargozero;
	FactionInfo[facid][cargo3] = cargozero;
	FactionInfo[facid][cargo4] = cargozero;
	FactionInfo[facid][cargo5] = cargozero;
	FactionInfo[facid][cargo6] = cargozero;
	FactionInfo[facid][cargo7] = cargozero;
	FactionInfo[facid][cargo8] = cargozero;
	FactionInfo[facid][cargo9] = cargozero;
	FactionInfo[facid][cargo10] = cargozero;
	FactionInfo[facid][cargo11] = cargozero;
	FactionInfo[facid][cargo12] = cargozero;
	FactionInfo[facid][cargo13] = cargozero;
	FactionInfo[facid][cargo14] = cargozero;
	FactionInfo[facid][cargo15] = cargozero;
	return 1;
}
public r@MySQL_CreateFaction(playerid) {
	new novafacid = cache_insert_id(ConnectMYSQL);
	fmembro[playerid] = novafacid;
	fcargo[playerid] = 5;
	GivePlayerMoneyEx(playerid,-500000);
	SendClientMessage(playerid,-1,"Faction successfully created!");
	return 1;
}
Reply
#2

Use \

PHP код:
format(querysizeof(query), "INSERT INTO `factions` (`facname`, `membro1`, `membro2`, `membro3`, `membro4`, `membro5`, `membro6`, `membro7`, `membro8`, `membro9`, `membro10`, `membro11`, `membro12`, `membro13`, `membro14`, `membro15`,\
`cargo1`, `cargo2`, `cargo3`, `cargo4`, `cargo5`, `cargo6`, `cargo7`, `cargo8`, `cargo9`, `cargo10`, `cargo11`, `cargo12`, `cargo13`, `cargo14`, `cargo15`)    VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s',\
'%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')" 
Reply
#3

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
Use \

PHP код:
format(querysizeof(query), "INSERT INTO `factions` (`facname`, `membro1`, `membro2`, `membro3`, `membro4`, `membro5`, `membro6`, `membro7`, `membro8`, `membro9`, `membro10`, `membro11`, `membro12`, `membro13`, `membro14`, `membro15`,\
`cargo1`, `cargo2`, `cargo3`, `cargo4`, `cargo5`, `cargo6`, `cargo7`, `cargo8`, `cargo9`, `cargo10`, `cargo11`, `cargo12`, `cargo13`, `cargo14`, `cargo15`)    VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s',\
'%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')" 
Vlw brother,m as parece q nгo funcionou...

error 075: input line too long (after substitutions)
Код:
	`cargo1`, `cargo2`, `cargo3`, `cargo4`, `cargo5`, `cargo6`, `cargo7`, `cargo8`, `cargo9`, `cargo10`, `cargo11`, `cargo12`, `cargo13`, `cargo14`, `cargo15`)    VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s',\
error 037: invalid string (possibly non-terminated string)
error 017: undefined symbol "INSERT"
error 017: undefined symbol "INTO"
fatal error 107: too many error messages on one line
Код:
	'%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')"  	,
Reply
#4

Aqui compilou normalmente. Tente usar strcat.
Reply
#5

Se seu objetivo й diminuir a consulta, pode comeзar estudando sobre DEFAULT em SQL.

http://www.1keydata.com/pt/sql/sql-default.php
Reply
#6

Nгo tem como eu quebrar isso em duas partes? Alguйm sabe como?
Reply
#7

Se estudasse o link que postei, veria que essa consulta pode ser reduzida a uma ъnica linha.
Reply
#8

Quote:
Originally Posted by zPain
Посмотреть сообщение
Se estudasse o link que postei, veria que essa consulta pode ser reduzida a uma ъnica linha.
Ler eu li, sу nгo sei como aplicar, esse default seria pra substituir aqueles 0 do cargo1,cargo2...


Nгo entendi muito como funciona nem a sintaxe como colocaria

Sу queria uma forma de arrumar isso

---

Nгo tem como eu quebrar esse meu comando em 2 partes?
Reply
#9

Reply
#10

PHP код:
new query[512],
    
query_1[1024];
mysql_format(mysqlquerysizeof(query), "UPDATE `exemplo`\
                                   SET `exemplo` = '%d',\
                                  `exemplo` = '%d',\
                                  `exemplo` = '%d',\
                                  `exemplo` = '%d',\
                                  `exemplo` = '%d',\
                                  `exemplo` = '%d',\
                                  `exemplo` = '%d',\
                                  `exemplo` = '%d',\
                                  `exemplo` = '%d,"
,\
                                  
exemplo[exemplo][exemplo],\
                                  
exemplo[exemplo][exemplo],\
                                  
exemplo[exemplo][exemplo],\
                                  
exemplo[exemplo][exemplo],\
                                  
exemplo[exemplo][exemplo],\
                                  
exemplo[exemplo][exemplo],\
                                  
exemplo[exemplo][exemplo],\
                                  
exemplo[exemplo][exemplo],\
                                  
exemplo[exemplo][exemplo]);
strcat(query_lquery);
mysql_format(mysqlquerysizeof(query), "`exemplo` = '%d',\
                                           `exemplo` = '%d',\
                                           `exemplo` = '%d',\
                                           `exemplo` = '%d'\
                                           `exemplo` = '%d'\
                                           `exemplo` = '%d'\
                                           WHERE `exemplo` = '%d'"
,\
                                           
exemplo[exemplo][exemplo],\
                                           
exemplo[exemplo][exemplo],\
                                           
exemplo[exemplo][exemplo],\
                                           
exemplo[exemplo][exemplo],\
                                           
exemplo[exemplo][exemplo],\
                                           
exemplo[exemplo][exemplo],\
                                           
exemplo[exemplo][exemplo]);  
strcat(query_lquery);
mysql_query(connectquery_l); 
nгo manjo muito disso, nгo faзa a mнnima ideia se estб certo, mas pelo menos funcionou aqui... kkkkkkkkkk faz o teste...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)