La question est : pourquoi ne veux-tu pas créer la table en amont ?
Si vraiment tu y tiens tu peux tester si la requête retourne quelque chose avant de faire quoi que ce soit :
local controle = mysql_query("SELECT * FROM player.teleportation_bloquage WHERE teleportation_bloquage.amis='"..ami.."' AND teleportation_bloquage.pseudo='"..name.."'")
if controle == nil or controle[1] == nil then
syschat("La requête MySQL n'a retourné aucun résultat.")
else
-- le reste de ton code
end
Voici une solution qui devrait fonctionner :
local req = mysql_query("SELECT * FROM player.teleportation WHERE teleportation.name='"..name.."'")
local menu_list = {}
if req ~= nil then
for i=1,table.getn(req) do
menu_list[i] = req[i][1]
end
table.insert(menu_list, "Annuler")
local s = select_table(menu_list)
if s == table.getn(lieux_list) then
return
end
if req[s][2] ~= nil and req[s][3] ~= nil then
pc.warp(req[s][2],req[s][3])
else
syschat("Il y a un problème avec les coordonnées.")
return
end
else
syschat("Vous n'avez aucun lieu d'enregistré.")
return
end
Pour cela il faut que tu modifies ta table teleportation pour qu'elle ait uniquement la colonne name, local_x et local_y.
Rien empêche d'avoir plusieurs lignes pour un seul personnage, ce sera bien plus propre ainsi !
De plus avec cette méthode il sera possible d'y avoir autant de lieu enregistré que désiré.