Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Bienvenue Guest!

Rejoignez la communauté pour avoir accès à l'entièreté du site! Une fois que vous serez enregistré, vous pourrez créer, aider, partager et discuter avec les membres de la communauté et également participer à l'amélioration du site. Alors, qu'attendez vous ? Enregistrez-vous !

  • 0
Tony Stark

résolu Problème pour récupérer des données dans la bdd

Question

Tony Stark
Posted (edited)

Quelle OS utilisez vous sur votre machine ? : Linux sur VPS, Windows en local
Sur quel framework travaillez vous? (ESX/VRP/ES/Autre) : ESX
Qu'avez vous essayer auparavant ? (Vider votre cache, installation du script au propre etc...): Test du script de base, modification perso, vidage du cache, et mtn post sur le forum...
Êtes vous sûr d'avoir la dernière version de votre framework ? : Oui

Explication de votre problème :

 

Bonjour à tous :)

 

J'ai un petit souci quand j'essaye de récupérer des données dans la base de données avec la fonction suivante :

 

MySQL.ready(function ()
  local vehicles   = MySQL.Sync.fetchAll('SELECT * FROM owned_vehicles')
  for i=1, #vehicles, 1 do
    local vehicle = json.decode(vehicles[i].vehicle)
    if vehicle.plate ~= nil then
      table.insert(vehList, {plate = vehicle.plate,owner = vehicles[i].owner} )
    end
  end
end)


function GetOwnedVehicle(plate)
  local owner = 0
	for i=1, #vehList, 1 do
  		if string.match(vehList[i].plate,plate) ~= nil  then
  			owner = vehList[i].owner
        break
  		end
	end
  	print(owner)
	return owner
end

Lien vers vos logs de l'erreur sur pastebin/hastebin client+serveur : Aucune erreur, que ce soit client ou serveur, juste que la valenr print reste à 0 :/

 

Vous avez une idée d'où cela peut venir ? :/

Edited by Tony Stark

Share this post


Link to post
Share on other sites

10 answers to this question

Recommended Posts

  • 0
JagerBom

salut! j'espere deja que tu as déclaré ton tableau donc au debut de ton fichier et puis ta fonctione n'est pas tout a fait bonne

local vehList= {}



function GetOwnedVehicle(plate)
  local owner = 0
    for i=1, #vehList, 1 do
          if ESX.Math.Trim(vehList[i].plate) == ESX.Math.Trim(plate) then
              owner = vehList[i].owner
            break
          end
    end
    return owner
end

essaye ceci et dis moi quoi :)

Share this post


Link to post
Share on other sites
  • 0
Tony Stark

Coucou Jager, merci, oui le tableau était déclaré au début du script :)

Merci pour la fonction corrigée, mais le print reste à 0, même quand le véhicule m'appartient 🤔

Share this post


Link to post
Share on other sites
  • 0
JagerBom
il y a 19 minutes, Tony Stark a dit :

Coucou Jager, merci, oui le tableau était déclaré au début du script :)

Merci pour la fonction corrigée, mais le print reste à 0, même quand le véhicule m'appartient 🤔

 

ben j'ai fais le test et moi ca marche niquel

tu appelles bien la fonction comme ceci ? 

local plate = "AAAAAAAA"
if GetOwnedVehicle(plate) ~= 0 then
	print("plaque appartient a quelqu'un")
else
	print("plaque appartient a personne")
end

sinon essaye ceci: (voir si il y a des espaces dans tes plaques)

function GetOwnedVehicle(plate)
  local owner = 0
    for i=1, #vehList, 1 do
			print("'"..vehList[i].plate.."'")
			print("'"..plate.."'")
          if vehList[i].plate ==plate then
              owner = vehList[i].owner
            break
          end
    end
    return owner
end

 

Share this post


Link to post
Share on other sites
  • 0
Tony Stark
Posted (edited)
local Plate = plate
local owner = GetOwnedVehicle(Plate)

if owner ~=0 then
	print(Vehicule legit)
else
	print(vehicule vole)
end

Oui j'ai un espace dans les plaques, j'avais testé cette nuit sans espace, mais du coup c'était encore la fonction précédente, je vais tester celle-ci, merci :)

Edited by Tony Stark

Share this post


Link to post
Share on other sites
  • 0
Tony Stark

Voici le résultat :

 

'EIH 046'
'QGW 711 '
'HZC 172'
'QGW 711 '
'ABB 154'
'QGW 711 '
0

 

La plaque 'QGW 711 ' étant celle de la voiture utilisée, m'appartenant, et 0 étant le résultat de mon  print(owner) pour confirmer, on ne sait jamais

 

local Plate = plate
local owner = GetOwnedVehicle(Plate)

if owner ~=0 then
	print(Vehicule legit)
	print(owner)
else
	print(vehicule vole)
	print(owner)
end

 

Share this post


Link to post
Share on other sites
  • 0
Kanda Sorata

La faute viens des espaces, utilises https://esx-org.github.io/es_extended/common/functions/trim/

Cela supprime les espaces de ta valeur sans la modifié en soit, ça supprime l'espace quand tu la lis avec le code, ça t'évite des problèmes lorsque tu utilises la valeur en argument

Share this post


Link to post
Share on other sites
  • 0
JagerBom

oui voila les espaces ^^ pour ca que sur mon serv j'ai pas mis les plaques a 6 chiffres/lettres, comme ca j'ai pas le souci

Share this post


Link to post
Share on other sites
  • 0
Tony Stark
il y a 9 minutes, JagerBom a dit :

oui voila les espaces ^^ pour ca que sur mon serv j'ai pas mis les plaques a 6 chiffres/lettres, comme ca j'ai pas le souci

 

Oui tu m'étonnes 😂 Je trouvais ça mieux en 2x3 avec espaces... mais bon ^^

 

Merci Kanda et Jager :) 😌

Share this post


Link to post
Share on other sites
  • 0
JagerBom

probleme sollutionner ? on peut clos le sujet ? 

(fait tonc faire un trim des plaques)

 

ps moi j'ai laiisé les 8 lettres/chiffres sinon la visibilité entre joueur / pnj est moindre (apres normalement faut pas prendre en compte cela ...

Share this post


Link to post
Share on other sites
  • 0
Kanda Sorata

L'utilisateur ayant résolu le problème, je lock ;)

Share this post


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

×
×
  • Create New...

Important Information

En utilisant ce site, vous acceptez les présents règlements Terms of Use, Privacy Policy,Guidelines.