SA-MP Forums Archive
[Ajuda] MySQL como atribuir valor nulo via SA-MP - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] MySQL como atribuir valor nulo via SA-MP (/showthread.php?tid=627887)



MySQL como atribuir valor nulo via SA-MP - ViniKuliveguisky - 03.02.2017

Boa noite,

Estou voltando a trabalhar com SA-MP no meu antigo projeto e estou fazendo mudanзas significativas no mesmo, como por exemplo passando todo o sistema de arquivo DOF2 para MySQL. O problema й que possuo uma variбvel em que o jogador pode ou nгo ser dono dessa empresa, sendo assim o campo pode ser nulo. Pesquisei em diversos tutoriais aqui do forum sa-mp e nгo vi nenhum explicando isso ou alguйm que jб passou por essa situaзгo.

Segue um trecho de cуdigo para exemplificar o que estб acontecendo:

Код:
	...
	
	new sQuery[128];
	
	mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa set proprietarioEmpresa = '%e' WHERE idEmpresa = %i",
		EmpresaDono[i], EmpresaInfo[i][idEmpresa]);
		
	mysql_query(db, sQuery, false);
O campo proprietarioEmpresa ele pode ser nulo ou possuir o nome de um jogador que no caso й uma foreign key, porйm se eu jogar a variбvel com o format '%e', ele atribuiria o valor NULL como string (errado) e o nome do jogador seria como string (certo). Agora se passar com o format %e (sem aspas simples), ele interpretaria o valor NULL como nulo (certo) e o nome do jogador como uma coluna invбlida (errado).

* No exemplo acima estou fazendo o update apenas de um campo, mas no meu cуdigo original tem muitos outros.


Respuesta: MySQL como atribuir valor nulo via SA-MP - ViniKuliveguisky - 03.02.2017

Por favor, se nгo souber responder nгo responda, o pessoal lк a quantidade de posts e ignora achando que foi resolvido


Re: MySQL como atribuir valor nulo via SA-MP - TheBob - 03.02.2017

se eu soubesse MYSQL te ajudaria namoral


Re: MySQL como atribuir valor nulo via SA-MP - RodrigoMSR - 03.02.2017

Coloque um nick padrгo como "Ninguem" e o bloqueie no servidor, depois no sistema faзa a checagem do nick para ver se possui ou nгo dono.

Jб que estб utilizando MySQL, recomendo colocar o ID da conta do jogador em vez de seu nick, alйm de ser mais fбcil o manuseio (troca de nick e variбveis) os IDs comeзam a partir do 1, entгo o 0 pode ser usado para empresa sem dono.


Re: MySQL como atribuir valor nulo via SA-MP - F1N4L - 03.02.2017

Код:
if(EmpresaDono[i][0] == '\0') 
		mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa SET proprietarioEmpresa = NULL WHERE idEmpresa = %i", EmpresaInfo[i][idEmpresa]);
	else
		mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa SET proprietarioEmpresa = '%e' WHERE idEmpresa = %i", EmpresaDono[i], EmpresaInfo[i][idEmpresa]);
Este cуdigo vai verificar a cada loop se a variбvel EmpresaDono й nula ou nгo, caso for, serб inserido valor NULL а coluna, caso nгo for, serб inserido o valor contido na variбvel EmpresaDono.

Gostaria de esclarecer a razгo pela qual esse cуdigo nгo pode utilizar Operaзгo Ternбria: Usando essa operaзгo, o cуdigo ficaria menor, mas daria o mesmo resultado, ao invйs de inserir um valor nulo na coluna, seria inserido o valor NULL como string. Desta forma, a maneira mais adequada й criar uma condiзгo que verifique se a variбvel й nula para definir valor nulo corretamente а coluna.


Respuesta: Re: MySQL como atribuir valor nulo via SA-MP - ViniKuliveguisky - 03.02.2017

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Код:
if(EmpresaDono[i][0] == '\0') 
		mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa SET proprietarioEmpresa = NULL WHERE idEmpresa = %i", EmpresaInfo[i][idEmpresa]);
	else
		mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa SET proprietarioEmpresa = '%e' WHERE idEmpresa = %i", EmpresaDono[i], EmpresaInfo[i][idEmpresa]);
Este cуdigo vai verificar a cada loop se a variбvel EmpresaDono й nula ou nгo, caso for, serб inserido valor NULL а coluna, caso nгo for, serб inserido o valor contido na variбvel EmpresaDono.

Gostaria de esclarecer a razгo pela qual esse cуdigo nгo pode utilizar Operaзгo Ternбria: Usando essa operaзгo, o cуdigo ficaria menor, mas daria o mesmo resultado, ao invйs de inserir um valor nulo na coluna, seria inserido o valor NULL como string. Desta forma, a maneira mais adequada й criar uma condiзгo que verifique se a variбvel й nula para definir valor nulo corretamente а coluna.
Pensei nesse modo, porйm continua sendo um modo "feio" se й que me entende... Mesmo assim obrigado.

+rep.