Banco de dados
#1

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.
Код:
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;
}
Reply
#2

PHP код:
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://sampwiki.blast.hk/wiki/Format ", especificamente em "Format Specifiers".

E se possнvel tambйm dк uma olhada aqui: " https://sampwiki.blast.hk/wiki/SQLite ".
Reply
#3

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.

Код:
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?
Reply
#4

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.
Reply
#5

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!
Reply
#6

De comeзo vocк apresentou um cуdigo em SQlite, e depois em MySQL, assim complica ajudar haha!

PHP код:
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!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)