MySQL Save -
iTzMatheus - 19.01.2016
Eai galera, tranquilo? Criei um sistema de gerar a placa do veнculo e ele funciona quase perfeitamente. Implantei dentro da gamemode o sistema que funciona corretamente, cria a placa e salva a placa individualmente dos veнculos, mas tem um porйm. Coloquei para salvar na MySQL normalmente, mas acho que tem um erro dentro do Code da MYSQL que nгo armazena a placa corretamente, buga e gera o nъmero 83 para todos. Oque estб incorreto? Quando o gamemode й reiniciado ele exclui a placa do veнculo, ou seja. Ele nгo salva/carrega.
CУDIGO N°1
Код:
`carPlate` int(12) DEFAULT '0',
A placa padrгo й setada por nъmeros em random de 5 digitos e na frente deles o padrгo, LS-Nъmero. Bбsicamente assim:
CУDIGO N°2
Код:
format(string, sizeof(string),"LS-%d",number); //O number gera um random de 5 digitos.
SetVehicleNumberPlate(carid, string);
Eu acho que o erro estб dentro da programaзгo da MYSQL, no cуdigo n°1. Como que eu devo deixar o default quando й dessa maneira? Deixo em int(12), varchar(5), ou oque?
Re: MySQL Save -
arakuta - 19.01.2016
INT significa que o campo sу aceitarб nъmeros inteiros, enquanto VARCHAR aceitar qualquer caractere.
Re: MySQL Save -
iTzMatheus - 19.01.2016
Mas se eu alterar para Varchar 5 (quantidade de nъmeros) Vai funcionar corretamente? Pensei que varchar fosse utilizado somente para letras.
Re: MySQL Save -
arakuta - 20.01.2016
Quote:
Originally Posted by iTzMatheus
Mas se eu alterar para Varchar 5 (quantidade de nъmeros) Vai funcionar corretamente? Pensei que varchar fosse utilizado somente para letras.
|
Depende de como sгo feitas suas consultas. Poderia posta-las?
Re: MySQL Save -
Coringa_Vilao - 20.01.2016
atй INT mesmo dб pra vocк salvar as placas , mostre-me o cуdigo que vocк usa pra salvar ...
Re: MySQL Save -
iTzMatheus - 20.01.2016
No comando que irб gerar a placa й assim:
Код:
CarData[carid][carRegistrado] = 1 // Aqui seta quando o carro й registrado ou nгo.;
new number = 11111 + random(99999);
CarData[carid][carPlate] = number;
format(string, sizeof(string),"LS-%d",number);
SetVehicleNumberPlate(carid, string); // Setou a placa do carro
Car_Save(carid); // A funзгo Car Save й da MYSQL e salva as ediзхes em veнculo, tudo salva menos a placa.
Na gamemode a MYSQL utiliza a funзгo Car_Save para salvar os veнculos e a Car_Load para carrega-los.
Na Car_Load:
Код:
CarData[i][carPlate] = cache_get_field_int(i, "carPlate");
Na Car_Save:
Код:
format(query, sizeof(query), "UPDATE `cars` SET `carModel` = '%d', `carOwner` = '%d', `carPosX` = '%.4f', `carPosY` = '%.4f', `carPosZ` = '%.4f', `carPosR` = '%.4f', `carColor1` = '%d', `carColor2` = '%d', `carPaintjob` = '%d', `carLocked` = '%d', `carPlate` = '%d', `carRegistrado` = '%d'",
E quando a gamemode inicia ela chama o Car_Load e verifica as table's criadas. Oque acontece com o sistema й que, a placa sempre й setada normal. Mas quando a placa й setada e chama o Car_Save dentro da DB ele fica com a placa 83, nгo seta a placa correta. E quando carrega a GM apуs um GMX ou fecha-la, ele nгo seta novamente.
Re: MySQL Save -
arakuta - 20.01.2016
Acontece que a sua consulta nгo possui uma clбusula WHERE, portanto o comando UPDATE entende que deve alterar TODAS as linhas da tabela.
Recomendo tambйm que use um ID ъnico para cada linha da tabela, isto й chamado de PRIMARY KEY.
Domine SQL:
https://www.codecademy.com/learn/learn-sql
Re: MySQL Save -
Coringa_Vilao - 20.01.2016
Leia um pouco:
https://sampforum.blast.hk/showthread.php?tid=356261
https://www.youtube.com/watch?v=TMjhd95kAy8