Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...
  • 0

Quete MySql cherche fonction


Jinzo
Aller à la solution Résolu par Sufhal,

Question

Version des fichiers/ Type d'émulateur : Metin 2

Domaine (Base de données, Client, Core...) : Files et Client 2016

Votre niveau (Débutant, Intermédiaire, Avancé..) : Intermédiaire

 

Description du problème : Recherche fonction Mysql_querry sur BDD

Comment reproduire le problème ? :

Recherches et tests effectués : Les meilleurs étant ici , pourquoi allez chercher ailleurs 😃

 

Screenshot du problème concerné :

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.

 

Bonjour la communauté,

J'ai un code pour une quête qui fonctionne "bien" si une table existe dans la BDD

Mais ne fonctionne pas si la table n'éxiste pas dans la BDD

Voici mon code partiel :

			elseif s == 4 then
				say_title("Indiquez le nom de votre ami ! .")
				say("")
				local ami = input()
				local u_vid = find_pc_by_name(ami)
				if ami == "" then
					say("Vous devez indique un nom ! .")
					return
				end
				if u_vid==0 then
					say("L'ami indiqué est introuvable ! .")
					
					say_reward(" 1 : Soit il n'est pas connecté, ")
					say_reward(" 2 : Soit il ne ce trouve pas sur la même map")
					say_reward(" 3 : Soit vous avez mal indiqué son nom")
					say("")
					return
				else
					local controle = mysql_query("SELECT * FROM player.teleportation_bloquage WHERE teleportation_bloquage.amis='"..ami.."' AND teleportation_bloquage.pseudo='"..name.."'")
					if controle[1][3] == ami then
						say("Update la table")
						wait()
						if controle[1][4] == 1 then
							say_red(""..ami.." vous as bloqué il ne semble pas accepter")
							say_red("votre demande ! .")
							wait()
						elseif controle[1][4] == 0 then
							local warp = {pc.getx()*100,pc.gety()*100}
							local demande = confirm(u_vid , ""..pc.get_name().." aimerai vous téléportez , acceptez-vous ? ", 30)
							if demande == CONFIRM_OK then
								local accept = mysql_query("UPDATE player.teleportation_bloquage SET statut='0' WHERE pseudo='"..name.."' AND amis='"..ami.."'")
								local old = pc.select(u_vid)
								pc.warp(warp[1],warp[2])
								pc.select(old)
								say_reward("Votre ami(e) arrive .1 ")
							else
								local refus = mysql_query("UPDATE player.teleportation_bloquage SET statut='1' WHERE pseudo='"..name.."' AND amis='"..ami.."'")
								say_title("Erreur")
								say("")
								say_red("Votre ami a refusé ou est inactif. ")
							end
						end
					else
						say("Insert une nouvelle table")
						wait()
						if controle[1][4] == 1 then
							say_red(""..ami.." vous as bloqué il ne semble pas accepter")
							say_red("votre demande ! .")
							wait()
						elseif controle[1][4] == 0 then
							local warp = {pc.getx()*100,pc.gety()*100}
							local demande = confirm(u_vid , ""..pc.get_name().." aimerai vous téléportez , acceptez-vous ? ", 30)
							if demande == CONFIRM_OK then
								local accept = mysql_query("INSERT INTO player.teleportation_bloquage (pseudo, amis, statut) VALUES ('"..name.."', '"..ami.."', '0');")
								local old = pc.select(u_vid)
								pc.warp(warp[1],warp[2])
								pc.select(old)
								say_reward("Votre ami(e) arrive .1 ")
							else
								local refus = mysql_query("UPDATE player.teleportation_bloquage SET statut='1' WHERE pseudo='"..name.."' AND amis='"..ami.."'")
								say_title("Erreur")
								say("")
								say_blue("Votre ami a refusé ou est inactif. ")
							end
						end
					end
				end
			elseif s == 5 then

La partie BDD :

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `teleportation`
-- ----------------------------
DROP TABLE IF EXISTS `teleportation_bloquage`;
CREATE TABLE `teleportation_bloquage` (
  `num` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `pseudo` varchar(32) NOT NULL DEFAULT '',
  `amis` varchar(32) NOT NULL DEFAULT '',
  `statut` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`num`,`pseudo`,`amis`,`statut`)
) ENGINE=MyISAM AUTO_INCREMENT=43 DEFAULT CHARSET=latin1;

Mon souci est la présence ou non de la table , quelle est la commande Mysql pour exucuter une action si la table est rempli ou faire une autre action si la table est vide ?

il commence ici :

					local controle = mysql_query("SELECT * FROM player.teleportation_bloquage WHERE teleportation_bloquage.amis='"..ami.."' AND teleportation_bloquage.pseudo='"..name.."'")
					if controle[1][3] == ami then

J'ai essayé divers codes , mais sans résultats concluant .

Je vous remercie d'avance pour le temps que vous m'accorderez .

Lien vers le commentaire
Partager sur d’autres sites

5 réponses à cette question

Messages recommandés

  • 0
  • Retraité
  • Solution

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

 

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci _Sufhal je teste ca et retourne vers toi pour te donner le retour.

 

édit :

 

Merci _Sufhal le code fonctionne , j'avais testé mais je me suis trompé j'avais mis != ....

PS : La table est déjà créer en amont , mais la fonction que j'avais ne fonctionnai pas car je n'arrivai pas a contrôler l'entrée vide , ce qui avait comme effet de ne rien faire étant donner qui n'avait pas de choix concret a sélectionner.

 

Sujet Résolu , merci

Modifié par Jinzo
Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 37
    2. 21

      Metin2 en 2020 peut-on en parler?

    3. 0

      METIN2Project

    4. 3

      Ressources - UnPack - Metin2 Client - Officiel

    5. 0

      Barre des tâches d'argent étendue

    6. 16

      Redémarrage automatique des channels

    7. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.