Jump to content
×
×
  • Create New...

LUA - Requêtes SQL avec des Boucles


Swice
 Share

Recommended Posts

Niveau requis Intermédiaire

Temps estimé : 30 minutes

Bonjour,

 

Aujourd'hui je viens vous présenter mon second tutoriel, qui vous expliquera comment créer un requête SQL à l'aide des boucles. Je vais commencer par redéfinir les requêtes avec des mots simples et facilement compréhensifs. C'est en quelques sortes une demande, on cherche à faire une action dans une base de données. Par exemple, une requête peut servir à sélectionner des informations en fonction de critères, à entrer des informations, à en modifier ou à en supprimer dans la base de données. Tout d'abord, je précise une chose. Il est préférable de faire une requête SQL à partir d'une boucle dans une fonction que l'on appellera dans la quête.

 

Révélation

 

Commençons par la base de données. On nommera la table "requête" et elle se trouvera dans la base de données "player". Admettons que nous ayons plusieurs champs tel que "id" (correspondant à l'id du personnage), "points_de_vie" et "points_de_magie". Au début de la quête, on aura une requête d'ajout, se trouvant dans une autre fonction (que vous pouvez appeler "start" par exemple), comme celle là (avec la valeur de 'id' définie par : id = pc.get_player_id()) :

mysql_query("INSERT INTO player.requete (id, points_de_vie, points_de_magie) VALUES ("..id..", 0, 0)")
La table se compose maintenant de 3 entrées : id, contenant l'id du joueur ; points_de_vie, contenant 0 ; points_de_magie, contenant 0. Je tiens à préciser que les deux derniers champs ne sont pas 'logiques' puisque le joueur doit avoir des points de vie et de magie. Je veux juste vous montrer comment faire une boucle pour ajouter des valeurs dans ces entrées. Je vais faire un tableau, à ajouter dans la quête ou dans le questlib.lua (attention, vous n'êtes en aucun cas obligé de faire des tableaux, mais je vous le conseil fortement pour ce type de fonction) :
tableau_requete_boucles = {vie, magie}
Passons à la boucles : Admettons que je souhaite mettre 600 points de vie et de magie à un joueur. Je vais faire ça :
function requete_boucle()
	local id = pc.get_player_id() // on prend l'id du joueur
	local req = "UPDATE player.requete SET " // on commence la requête
	for i = 1, table.getn(tableau_requete_boucles) do // pour 'i' allant de 1 à la taille du tableau 'tableau_requete_boucles', qui est de 2 ici, faire
		req = req.."points_de_"..tableau_requete_boucles[i][1] = 600..", " // on ajoute les morceaux de la requête avec la boucle
		req = string.sub(req, 1, string.len(req)-2) // on supprime les 2 dernieres caractères de la fonction, qui sont : , et un espace
		req = req.." WHERE id = "..id..";" // on ajoute la dernière partie de la requête
		mysql_query(req)
	end
end
Pour ce type de requête, qui est très courte, ce n'est pas très utile, mais préférez faire ceci lorsque vous faites de longues requêtes !

Voici la requête normale :

mysql_query("UPDATE player.requete SET points_de_vie = 600, points_de_magie = 600 WHERE id = "..id..";")
Ce système est bien sûr modifiable à volonté, à vous de lui trouver une utilité !

 

 

Cordialement,

Hey hey

  • J'adore 1
Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

  • 3 years later...
 Share



  • Flux d'Activité

    1. 0

      Projet Genesis

    2. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    3. 0

      Metin2 Champions - Accès anticipé

    4. 0

      Barbok

    5. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    6. 2

      Partage Émulateur 2.63

    7. 2

      Partage Émulateur 2.63

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.