• 04 Juin 2026, 04:03:33


Auteur Sujet: Problème système admin SQL  (Lu 2658 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Jawitt

  • Scripteur PAWN/PHP
  • *
  • Tueur
  • Scripteur de LS-Paradise
  • Messages: 53
    • Voir le profil
Problème système admin SQL
« le: 26 Juin 2011, 19:37:42 »
Bonsoir,

Je suis en train de faire un GM en SQL pour ma première fois (pour le sql), et donc tout marche bien.. SAUF le système admin que j'essaye de créer..

En haut de mon GM, j'ai mis ça :

enum PlayerData
{
   pUsername[24],
    pPassword[24],
    pKills[11],
pDeaths[11],
pScore[11],
pMoney[11],
pNiveauAdmin,
pIP[50]
};
new pStats[MAX_PLAYERS][PlayerData];

Dans mon OnDialogResponse, j'ai mis ça (dans l'inscription) :

format(Query, sizeof(Query), "INSERT INTO `playerinfo` (`user`, `password`, `kills`, `deaths`, `score`, `money`, `NiveauAdmin`, IP) VALUES ('%s', '%s', %s, %s, %s, %d, '%s')", escpname, escpass, pStats[playerid][pKills], pStats[playerid][pDeaths], pStats[playerid][pScore], pStats[playerid][pMoney], pStats[playerid][pNiveauAdmin], PIP);
            mysql_query(Query);

Je précise aussi que j'ai mis la valeur à 5 dans AdminNiveau dans la BDD.

Puis j'ai créer une commande permettant de voir si le système marchait :

if (strcmp("/testadmin", cmdtext, true, 10) == 0)
{
   if(pStats[playerid][pNiveauAdmin] >= 1)
   {
SendClientMessage(playerid, COULEUR_ROUGE, "Le système d'administrateur fonctionne parfaitement !");
}
else
{
   SendClientMessage(playerid, COULEUR_ROUGE, "Vous n'êtes pas un administrateur !");
}
return 1;
}

Je précise que j'ai bien une colonne se nommant NiveauAdmin dans ma table playerinfo..

Merci d'avance, cordialement.
« Modifié: 26 Juin 2011, 19:52:57 par Jawitt »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Problème système admin SQL
« Réponse #1 le: 27 Juin 2011, 10:11:02 »
Dans ce que tu montres, je ne vois pas l'endroit où tu vas lire les données dans la table 'playerinfo' (QUERY).
Ton problème vient certainement de là.

++
Syg
Courtesy of GtaManiac

Hors ligne Jawitt

  • Scripteur PAWN/PHP
  • *
  • Tueur
  • Scripteur de LS-Paradise
  • Messages: 53
    • Voir le profil
Re : Re : Problème système admin SQL
« Réponse #2 le: 27 Juin 2011, 18:25:29 »
Dans ce que tu montres, je ne vois pas l'endroit où tu vas lire les données dans la table 'playerinfo' (QUERY).
Ton problème vient certainement de là.

++
Syg

Comment dois-je faire ?

J'avais pensé à mettre ça dans mon OnPlayerConnect :

    format(Query, sizeof(Query), "SELECT * FROM `playerinfo` WHERE `NiveauAdmin` = '%d'", pStats[playerid][pNiveauAdmin]);
    mysql_query(Query);

Mais ça ne marche toujours pas...
« Modifié: 27 Juin 2011, 19:33:27 par Jawitt »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème système admin SQL
« Réponse #3 le: 27 Juin 2011, 20:30:33 »
C'est bien de faire une requête, mais c'est mieux d'en récupérer le retour ;).

Hors ligne Jawitt

  • Scripteur PAWN/PHP
  • *
  • Tueur
  • Scripteur de LS-Paradise
  • Messages: 53
    • Voir le profil
Re : Problème système admin SQL
« Réponse #4 le: 27 Juin 2011, 20:48:22 »
Bah j'ai regardé mais je ne trouve pas comment je pourrais faire, pourrais-tu m'éclaircir ? merci !

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème système admin SQL
« Réponse #5 le: 27 Juin 2011, 21:37:10 »
Pour la requête INSERT INTO, tu n'as rien d'intéressant à récupérer, si tous est bien configuré, les données transmissent devraient être ajouté à la base de donnée.

format(Query, sizeof(Query), "SELECT * FROM `playerinfo` WHERE `NiveauAdmin` = '%d'", pStats[playerid][pNiveauAdmin]);
mysql_query(Query);

Pourquoi pas, mais comment tu récupère la valeur de NiveauAdmin, tu ne peux pas mettre une valeur aléatoire ;).
Pour récupérer les données de ton joueur, il faut stocker ces données correctement, à l'aide de son pseudo et pourquoi pas, d'un mot de passe.


public AFunction()
{
new query[256] = "";
new result[256] = "";
new field[8][256];

query = "SELECT `user`, `password`, `kills`, `deaths`, `score`, `money`, `NiveauAdmin`, `IP` FROM `playerinfo` WHERE `user` = 'Jawitt' ORDER BY `id` DESC LIMIT 1;";

mysql_query(query);
mysql_store_result(handle);
mysql_fetch_row(result, "*", handle);

xSplit(result, field, '*');

printf("Information: %s - %s - %s", field[0], field[1], field[2], field[3], field[4], field[5], field[6], field[7]);
}

stock xSplit(const strsrc[], strdest[][], delimiter)
{
    new i, li, aNum, len;
   
    while(i <= strlen(strsrc))
    {
        if(strsrc[i] == delimiter || i == strlen(strsrc))
        {
            len = strmid(strdest[aNum], strsrc, li, i, 128);

            strdest[aNum][len] = 0;

            li = i + 1;
            aNum++;
        }

        i++;
    }
   
    return 1;
}

Hors ligne Jawitt

  • Scripteur PAWN/PHP
  • *
  • Tueur
  • Scripteur de LS-Paradise
  • Messages: 53
    • Voir le profil
Re : Problème système admin SQL
« Réponse #6 le: 27 Juin 2011, 22:00:06 »
Tout d'abord, merci de m'accorder de ton temps.

Ensuite, je crois avoir compris la fonction, par contre ce que je voudrais comprendre, c'est que exemple : je met une ligne du genre

Afunction(playerid);
Et pour la compilation, undefined symbol "handle"  je met simplement new handle; ??

Par la suite, j'aimerais simplement savoir comment faire appel à ta fonction, c'est vrai que je pose beaucoup de question, mais je débute dans le script MySQL, même si j'ai fais des recherches sur internet, je ne trouve pas réponse à tout.

Merci bien :)

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème système admin SQL
« Réponse #7 le: 28 Juin 2011, 02:05:15 »
handle est une variable qui contient le retour de la fonction mysql_connect.
Pour faire appel à la fonction, tu fais comme ceci:


AFunction();

Hors ligne Jawitt

  • Scripteur PAWN/PHP
  • *
  • Tueur
  • Scripteur de LS-Paradise
  • Messages: 53
    • Voir le profil
Re : Problème système admin SQL
« Réponse #8 le: 28 Juin 2011, 07:13:01 »
D'accord, ne serait-ce pas ça à mettre par tout hasard :

new handle = 0;
Est-ce que c'est bon comme ça ? (je suis pas sûr moi ^^)

Merci :)
« Modifié: 28 Juin 2011, 07:22:40 par Jawitt »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème système admin SQL
« Réponse #9 le: 28 Juin 2011, 18:57:23 »
Je t'ai dit quelle doit contenir la valeur de retour de la fonction mysql_connect.

Hors ligne Jawitt

  • Scripteur PAWN/PHP
  • *
  • Tueur
  • Scripteur de LS-Paradise
  • Messages: 53
    • Voir le profil
Re : Problème système admin SQL
« Réponse #10 le: 28 Juin 2011, 19:08:28 »
Ok... bon je vais chercher de mon côté.

Bon, si je fais un script du genre :

stock GNVA(playerid)
{
    new query[100];
    format(query,sizeof(query),"SELECT `*****` FROM `*****` WHERE `****`='%s'",GetName(playerid));
    mysql_query(query);
    mysql_store_result();
    mysql_free_result();
    return strval(query);
}

Y'a possibilité que ça marche ? en le modifiant bien sûr..
« Modifié: 28 Juin 2011, 19:20:01 par Jawitt »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème système admin SQL
« Réponse #11 le: 29 Juin 2011, 07:00:07 »
J'ai oublié de te demander, quelle plugin utilise-tu ?

Hors ligne Jawitt

  • Scripteur PAWN/PHP
  • *
  • Tueur
  • Scripteur de LS-Paradise
  • Messages: 53
    • Voir le profil
Re : Problème système admin SQL
« Réponse #12 le: 29 Juin 2011, 16:33:07 »
SA-MP MySQL plugin R5
Copyright (c) 2008-2010, G-sTyLeZzZ