SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 10/01/2019, 10:50 PM   #1
CoronelAraujo
Big Clucker
 
CoronelAraujo's Avatar
 
Join Date: Sep 2014
Location: São Paulo, Brasil
Posts: 65
Reputation: 0
Default Banco de dados

Bem, estou tentando criar uma programação que seja possível pesquisar dados no banco de dados, no entanto, meu conhecimento neste tipo de programação SQL ou MySQL é muito baixa e não consigo aprender com tutoriais devido a um problema que tenho :P mas enfim peço a ajuda.
Code:
Dialog:1449(playerid, response, listitem, inputtext[])
{
if (response)
{
new field[128];
new query[128];
new string[128];

format(query, sizeof query, "SELECT * FROM `veiculos` WHERE `veiculo`='%q'", vehicleid);

db_get_field_assoc(carPlaca, "carPlaca", field, sizeof(field));
db_get_field_assoc(carDono, "carDono", field, sizeof(field));

carPlaca = strval(field);
carDono = strval(field);

format(string, sizeof(string), "Placa:%s\nDono:%s\nModelo:%s", carPlaca, carDono, GetVehicleModelInfo(GetVehicleModel(vehicleid)));
ShowPlayerDialog(playerid, 1500, DIALOG_STYLE_MSGBOX, "Pesquisa de emplacamento", string, "Confirmar", "Voltar");

db_free_result(carPlaca);
db_free_result(carDono);

}
return 1;
}
CoronelAraujo is offline   Reply With Quote
Old 10/01/2019, 11:17 PM   #2
StartOver
Little Clucker
 
Join Date: Dec 2018
Posts: 29
Reputation: 0
Default Re: Banco de dados

PHP Code:
Dialog:1449(playeridresponselistiteminputtext[])
{
    if (
response)
    {

        new  
            
DBResult:result
            
str[50], 
            
Placa
            
DonoPlaca 
        


        
        
format(strsizeof(str), "SELECT * FROM `veiculos` WHERE `veiculo`='%d'"vehicleid);//não sei da onde você está pegando o "vehicleid", mas tudo bem.
        
result db_query(DB_DBstr); //Não se esqueça de mudar o "DB_DB".

        
if(db_num_rows(result)){
            
Placa db_get_field_assoc_int(result"carPlaca");
            
DonoPlaca db_get_field_assoc_int(result"carDono");
        }
        
db_free_result(result);

        
format(strsizeof(str), "Placa:%d\nDono:%d\nModelo:%d"PlacaDonoPlacaGetVehicleModelInfo(GetVehicleModel(vehicleid)));
        
ShowPlayerDialog(playerid1500DIALOG_STYLE_MSGBOX"Pesquisa de emplacamento"str"Confirmar""Voltar");

    }
    return 
1;

De uma olhada aqui " https://wiki.sa-mp.com/wiki/Format ", especificamente em "Format Specifiers".

E se possível também dê uma olhada aqui: " https://wiki.sa-mp.com/wiki/SQLite ".
__________________
- Você pode ser um rei ou um varredor de rua, mas todo mundo dança com o anjo da morte.
StartOver is offline   Reply With Quote
Old 11/01/2019, 12:19 AM   #3
CoronelAraujo
Big Clucker
 
CoronelAraujo's Avatar
 
Join Date: Sep 2014
Location: São Paulo, Brasil
Posts: 65
Reputation: 0
Default Re: Banco de dados

Eu fiz o que você pediu só que não abriu a mensagem que era para conter os dados do veículo.

No caso seria assim o código todo.

1. Dialog para selecionar o veículo.

Code:
ShowPlayerDialog(playerid, 1449, DIALOG_STYLE_INPUT, "Pesquisar emplacamento", "Digite o emplacamento abaixo:", "Confirmar", "Cancelar");
Iria selecionar uma placa já registrada no banco de dados. Iria selecionar a placa no caso e dps iria repassar os dados, depois disso coloquei o Dialog que você mandou só que alterei o banco de dados mas não apareceu nada.

Quote:
Dialog:1449(playerid, response, listitem, inputtext[])
{
if (response)
{
new
vehicleid,
DBResult:result,
str[50],
Placa,
DonoPlaca
;


format(str, sizeof(str), "SELECT * FROM `veiculos` WHERE `veiculo`='%d'", vehicleid);//não sei da onde você está pegando o "vehicleid", mas tudo bem.
// mysql_function_query(g_iHandle, result, false, "", "");
// result = db_query(g_iHandle, str); //Não se esqueça de mudar o "DB_DB".
mysql_function_query(g_iHandle, str, false, "", "");

if(db_num_rows(result))
{
Placa = db_get_field_assoc_int(result, "carPlaca");
DonoPlaca = db_get_field_assoc_int(result, "carDono");
}
db_free_result(result);

format(str, sizeof(str), "Placa:%d\nDono:%d\nModelo:%d", Placa, DonoPlaca, vehicleid);
ShowPlayerDialog(playerid, 1500, DIALOG_STYLE_MSGBOX, "Pesquisa de emplacamento", str, "Confirmar", "Voltar");

}
return 1;
}
O "vehicleid" que você não sabia de onde vinha, seria no caso que, ao pesquisar a placa do veículo, o ID seria contido e assim iria conseguir estabelecer o nome do veículo a partir do ID do modelo. Sacou? Mas enfim não consegui fazer a mensagem aparecer :P, É porque ele não está achando no banco de dados?
CoronelAraujo is offline   Reply With Quote
Old 11/01/2019, 12:43 AM   #4
augustogdo
Big Clucker
 
augustogdo's Avatar
 
Join Date: Jan 2017
Posts: 53
Reputation: 6
Default Re: Banco de dados

Cara, sugiro que antes de colocar no código, certifique-se de que a sua consulta está certa. Abra seu banco de dados e faça um teste, colocando um valor que você saiba que exista.

Se sua consulta retornar um registro, tudo certo, manda pro código.

Depois você vai testar no seu código. Manda executar a query, verifica se retornou algum registro, joga o valor que você quer numa variavel e printa no console.

Funcionou? Beleza, faz sua dialog e manda bala.
__________________
Com os olhos posto no sol meridiano,
tenho aprendido a grande lição de que nos encontramos no meio
dia de nossas vidas. Quando metade de nossos anos se encontram no passado, e a outra metade no futuro. Quando ainda teremos ocasião de fazermos o bem, e sermos melhores.

Ao sentar-me no Oriente, símbolo do sol nascente e da manhã da vida, tenho aprendido a grande lição de que nos encontramos no portal dos anos de preparação, onde devemos colocar o cimento sobre o qual haveremos de edificar o futuro.
augustogdo is offline   Reply With Quote
Old 11/01/2019, 01:03 AM   #5
CoronelAraujo
Big Clucker
 
CoronelAraujo's Avatar
 
Join Date: Sep 2014
Location: São Paulo, Brasil
Posts: 65
Reputation: 0
Default Re: Banco de dados

Realmente usei dados já criados anteriormente e continua não aparecendo nada... Consegue identificar o erro?

Eu gostaria de fazer assim, quando o veículo fosse comprado seria criada uma placa para o mesmo(igual uma ID), e pelo comando de um policial, fosse possível pesquisar os dados deste veículo e lá iria conter os demais dados, eu preciso de auxilio nesta parte para que fosse possível pesquisar a placa no sistema e por lá eu poderia conter as informações necessárias, consegui entender parte da programação mas acho que estou errando na hora de conectar a Dialog ao Banco de dados.

Inseri a mesma programação só que sem Dialog(apenas pelo comando) e recebi os dados!
CoronelAraujo is offline   Reply With Quote
Old 11/01/2019, 01:28 AM   #6
StartOver
Little Clucker
 
Join Date: Dec 2018
Posts: 29
Reputation: 0
Default Re: Banco de dados

De começo você apresentou um código em SQlite, e depois em MySQL, assim complica ajudar haha!

PHP Code:
Dialog:1449(playeridresponselistiteminputtext[]) 

    if (
response
    { 
        new 
str[55];
        
mysql_format(g_iHandlestrsizeof(str), "SELECT * FROM `veiculos` WHERE veiculo=%d LIMIT 1"strval(inputtext));
        
mysql_tquery(g_iHandlestr"ResultVehiclePlate""dd"playeridstrval(inputtext));

    } 
    return 
1
}  

forward ResultVehiclePlate(playeridvehicleid);
public 
ResultVehiclePlate(playeridvehicleid)
{
    if(
cache_num_rows() > 0){

        new 
            
Placa
            
DonoPlaca[MAX_PLAYER_NAME],
            
str[35]
        ;

        
cache_get_value(0"carDono"DonoPlacaMAX_PLAYER_NAME);
           
cache_get_value_int(0"carPlaca"Placa);

        
format(strsizeof(str), "Placa:%d\nDono:%s\nModelo:%d"PlacaDonoPlacaGetVehicleModelInfo(GetVehicleModel(vehicleid))); 
        
ShowPlayerDialog(playerid1500DIALOG_STYLE_MSGBOX"Pesquisa de emplacamento"str"Confirmar""Voltar"); 

    }else{

        
SendClientMessage(playerid, -1"Não existe nenhum veículo cadastrado com está placa.");
    }

Você deve inserir corretamente o nome das tabelas e colunas para obter os dados esperados.

Por exemplo, tem certeza que a coluna "carDono" está correta? teoricamente isso armazena o nome do dono do veículo, e "carPlaca" também, aparentemente armazena a placa, boa sorte.

Abraços!
__________________
- Você pode ser um rei ou um varredor de rua, mas todo mundo dança com o anjo da morte.
StartOver is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Conexão com banco de dados matanza87 Português/Portuguese 11 26/09/2016 06:57 PM
[Ajuda] Logs no Banco de Dados. Adejair Português/Portuguese 0 25/03/2014 10:16 PM
[Off] Dados flutuantes - Integração total com banco de dados steki. Português/Portuguese 8 01/11/2012 01:31 AM
[AJUDA] Banco de Dados Mattos Português/Portuguese 6 13/12/2011 11:08 AM
[ajuda]Banco de dados xolp25 Português/Portuguese 10 04/05/2010 04:17 PM


All times are GMT. The time now is 05:58 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.