Aller au contenu
San Andreas Multiplayer
Synoka

Comment save les vehs en mysql?

Messages recommandés

Bonsoir, je galère actuellement depuis plus de deux heures, à faire que quand je créer un véhicule il se sauvegarde dans la BDD, je viens ici car j'y arrive pas mddr.

 

Citation

    else if(!strcmp(souscommande, "creer", true))
    {
        if(pInfo[playerid][Admin] < 7) return SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas la permission d'utiliser cette commande.");
        {
            new Float:fx[4], string[128];
            new vehiculeid = strval(param1);
            if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Vous devez être en dehors d'un véhicule.");
            if(vehiculeid < 400 || vehiculeid > 611) return SendClientMessage(playerid, COLOR_CMD, "{6B8E23}USAGE: /v(ehicule) creer [ID]");
            GetPlayerPos(playerid, Float:fx[0], Float:fx[1], Float:fx[2]);
            GetPlayerFacingAngle(playerid, Float:fx[3]);
            vehiculeid = CreateVehicle(vehiculeid, Float:fx[0], Float:fx[1], Float:fx[2], Float:fx[3], -1, -1, -1);
            PutPlayerInVehicle(playerid, vehiculeid, 0);
            format(string, sizeof(string), "(ADMIN): %s a créé un véhicule. ID: %d.", GetName(playerid), vehiculeid);
            SendAlertMessage(COLOR_YELLOW, string);
        }
        return 1;
    }

 

Partager ce message


Lien à poster
Partager sur d’autres sites

bah ya acune fonction mysql dans se code sa aide pas non plus..

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 59 minutes, C_far a dit :

Tu connais le SQL ?

Bah si il demande de l’aide c’es que non a mon avis vue qu’il n’a même pas commencer la save

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, Satsho a dit :

Bah si il demande de l’aide c’es que non a mon avis vue qu’il n’a même pas commencer la save

Y a une différence entre connaître le langage et utiliser les outils pour pouvoir communiquer avec la BDD.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 5 heures, C_far a dit :

Tu connais le SQL ?

Bah je sais que je peux le faire en MySQL, c'est ce que j'avais essayer de faire, mais ça ne fonctionnait pas, en gros j'avais fais un "INSERT INTO" et j'avais mis les infos de la table dans la bdd mais sans succès

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu réponds pas à ma question, maîtrises-tu le langage SQL ?

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est sans doute l'un des langages les plus simples pour les bases, même si y a ce coté complexe pour certain des jointures.

Y a un site français qui explique très bien les bases ici : https://sql.sh/

Partager ce message


Lien à poster
Partager sur d’autres sites

D'accord merci, je vais me contenter du site que tu m'as proposé ça m'aidera d'avantage dans ma requête!

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai actuellement ce soucis, les models etc ne s'affiche pas dans la bdd quand je créer je un véhicule :

cc.png.9befe50af9bc6fb608823667f4e77b65.png

 

La commande :

Citation

    else if(!strcmp(souscommande, "creer", true))
    {
        if(pInfo[playerid][Admin] < 7) return SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas la permission d'utiliser cette commande.");
        {
            new query[512];
            new Float:fx[4], string[128];
            new vehiculeid = strval(param1);
            if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Vous devez être en dehors d'un véhicule.");
            if(vehiculeid < 400 || vehiculeid > 611) return SendClientMessage(playerid, COLOR_CMD, "{6B8E23}USAGE: /v(ehicule) creer [ID]");
            GetPlayerPos(playerid, Float:fx[0], Float:fx[1], Float:fx[2]);
            GetPlayerFacingAngle(playerid, Float:fx[3]);
              vehiculeid = CreateVehicle(vehiculeid, Float:fx[0], Float:fx[1], Float:fx[2], Float:fx[3], -1, -1, -1);
            mysql_format(dbhandle, query, sizeof(query), "INSERT INTO vehicules (ID, Model, X, Y, Z, ROTATION, COULEUR1, COULEUR2, SQLID)VALUES('%f', '%f', '%d', '%d', '%d', '%d', '%d', '%d', '%f')", vInfo[vehiculeid][ID], vInfo[vehiculeid][Model], vInfo[vehiculeid][v_x], vInfo[vehiculeid][v_y], vInfo[vehiculeid][v_z], vInfo[vehiculeid][v_r], vInfo[vehiculeid][v_r], vInfo[vehiculeid][Couleur1], vInfo[vehiculeid][Couleur2], vInfo[vehiculeid][SQLID]);
            mysql_tquery(dbhandle, query);
            PutPlayerInVehicle(playerid, vehiculeid, 0);
            format(string, sizeof(string), "[ADMIN]: %s a créé un véhicule. ID: %d.", GetName(playerid), vehiculeid);
            SendAlertMessage(COLOR_YELLOW, string);
        }
        return 1;
    }

 

Partager ce message


Lien à poster
Partager sur d’autres sites

À quel moment affectes-tu des valeurs à toutes tes variables vInfo ? 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ya pas besoin de Mysql pour affecter une variable à une valeur mais seulement des connaissances les plus basiques en Pawn. Il faut pas utiliser plein d'outils sans comprendre à quoi ils servent. Il est normal que les valeurs que tu récupères dans ta BDD soient nulles vu que dans ton code (en tout cas dans ce qu'on voit) elles sont initialisées nulle part... Je te conseille par ailleurs de consulter ton mysql_log voir s'il y a eu une erreur. 

Modifié par Jhonny

Partager ce message


Lien à poster
Partager sur d’autres sites

Montre comment tu utilises les fonctions du plugin et tes requêtes

Partager ce message


Lien à poster
Partager sur d’autres sites

Comme jhonny a dit, tu fais une requête sql :

 

mysql_format(dbhandle, query, sizeof(query), "INSERT INTO vehicules (ID, Model, X, Y, Z, ROTATION, COULEUR1, COULEUR2, SQLID)VALUES('%f', '%f', '%d', '%d', '%d', '%d', '%d', '%d', '%f')", vInfo[vehiculeid][ID], vInfo[vehiculeid][Model], vInfo[vehiculeid][v_x], vInfo[vehiculeid][v_y], vInfo[vehiculeid][v_z], vInfo[vehiculeid][v_r], vInfo[vehiculeid][v_r], vInfo[vehiculeid][Couleur1], vInfo[vehiculeid][Couleur2], vInfo[vehiculeid][SQLID]);

 

Mais dedans tu dis vouloir insérer dans ta bdd, par exemple -> vInfo[vehiculeid][v_x]

À quel moment tu donnes une valeur à cette variable dans ta commande ?

 

Au dessus de ta requête, ajoute vInfo[vehiculeid][v_x] = fx[0];

Et re essaye voir si dans ta bdd la position x est inséré.

 

PS: pour info tu as mis deux fois et à la suite vInfo[vehiculeid][v_r] dans la requête.

Modifié par Vichenz0

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour le coup, j'ai réussi à insérer la totalité sauf Couleur1&2 ainsi que le SQLID.

Partager ce message


Lien à poster
Partager sur d’autres sites

Tant mieux tu as compris le principe du coup 

Montre la commande comment elle est maintenant ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites
vInfo[vehiculeid][Couleur1] = -1, vInfo[vehiculeid][Couleur2] = -1;

 

Avant la requête SQL.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×