Jump to content
  • 0
Sign in to follow this  
Urso890

Infraestrutura Dúvida(Consulta com Vários Registros)

Question

Urso890    0
Urso890

The Forgotten Server 1.3, Versão: 10.98

Bom dia pessoal!

Minha dúvida é a seguinte: Estou fazendo um sistema em que vou ter que fazer uma busca por vários registros. Como eu busco e percorro esses registros utilizando as funções existentes?
Eu conheço algumas funções de executar query, buscar resultado, mas não encontrei nenhum exemplo de como percorrer vários resultados. Só encontrei como pegar os valores do primeiro resultado.

Ex: De código

Spoiler

-- Executa uma query
local resultId = db.storeQuery("SELECT  * FROM players") -- -> Como percorrer todos os resultados recuperados(Isso é um exemplo de query com vários                                                                                                                                             --        resultados, não é essa query que quero executar ^^)

Obs: Sei mexer com banco de dados, não sei percorrer as linhas do resultado utilizando os comandos lua do servidor Forgotten.

Edited by Urso890
Esqueci um detalhe

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0
TheRatazana    8
TheRatazana

O seguinte código é a solução do problema:

local resultId = db.storeQuery("SELECT * FROM players")
repeat
    print(result.getDataString(resultId, "name"))
until not result.next(resultId)

 

Testado pelo Autor do thread(Urso890). Suporte via Discord(#suporte)

Share this post


Link to post
Share on other sites
  • 0
lucasalmeidaisp    0
lucasalmeidaisp

Bom dia amigo

Deixa eu ver se eu entendi.
Você quer fazer uma pesquisa de um registro em várias tabelas? Ou vários registros de uma tabela só?

De qualquer forma, veja se isso possa te dar uma luz.

https://social.msdn.microsoft.com/Forums/pt-BR/421eeae7-9311-4bc8-9705-1b5f1f251e46/consulta-sql-por-contedo-do-registro-de-vrias-tabelas?forum=transactsqlpt

Obrigado

Share this post


Link to post
Share on other sites
  • 0
Urso890    0
Urso890

Então, eu quero fazer uma consulta em uma tabela, e trazer vários registros. Isso eu já sei fazer com banco de dados, mas não sei o comando que utiliza no lua do tibia.
Não conseguiu sanar minha dúvida, mas agradeço a tentativa. Minha dúvida persiste.

Share this post


Link to post
Share on other sites
  • 0
lucasalmeidaisp    0
lucasalmeidaisp

@Urso890  saquei, infelizmente eu não sou um expert no codigo lua.

Mas acredito que o  correto seria fazer uma matriz para voce salvar todos os dados puxados da tabela.
Para pular os campo da matriz, voce pode usar um while ou um repeat.
Voce pode fazer isso tanto no c++ quanto no banco de dados, mas acredito que no banco você pode gerar um stress.

Se voce me explicar melhor o que voce queria fazer, posso tentar te ajudar nisso.

Obrigado

Share this post


Link to post
Share on other sites
  • 0
Urso890    0
Urso890

Então, não é tão simples. Isso eu também sei. Sei programar em varias linguagens de programação.

Esse é um exemplo de código mais perto de percorrer as linhas de uma consulta que achei, mas ele só verifica se o código existe ou não.

-- Executa uma query com resposta com varias linhas(resultado da pesquisa)
local resultId = db.storeQuery("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. playerGuid)
-- Percorre a resposta do storeQuery
local tmpResultId = resultId -- Atribui o primeiro valor do resultado a variáveltmp
while tmpResultId ~= false do -- Verifica se é falso(acho que vazio), se não for
	tmpResultId = result.next(resultId) -- Pega o próximo resultado e atribui a variável
end
-- Verifica se o resultado não esta vazio. Se não estiver, ele libera os resultados da variável
if resultId ~= false then
	result.free(resultId)
end

Foi o mais próximo que encontrei de percorrer linhas, tentei por varias horas, vários dias,  varias sintaxes, nenhuma funcionou.

Share this post


Link to post
Share on other sites
  • 0
Urso890    0
Urso890

Resolveu meu problema @TheRatazana. Muito obrigado!

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×