• 20 Mai 2024, 04:47:33


Auteur Sujet: Problème requête SQL  (Lu 4873 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Problème requête SQL
« le: 01 Mai 2014, 16:04:52 »
Bonjour,

Voici ma requête SQL:

format(string, sizeof(string), "UPDATE players_stats SET PlayerLevel=%d,AdminLevel=%d, StatusRp=%d, Registered=%d,Sex=%d,Origin=%d,Muted=%d,Money=%d,Bank=%d,Pret=%d,Phonebook=%d,SuspendedTime=%d,Swat=%d,Job=%d,PayCheck=%d,Jailed=%d,JailTime=%d,Drugs=%d,Member=%d,Rank=%d,Chara=%d,pHealth=%f,Inte=%d WHERE id=%d",
PlayerInfo[playerid][pLevel],
PlayerInfo[playerid][pAdmin],
PlayerInfo[playerid][pStatusRp],
PlayerInfo[playerid][pReg],
PlayerInfo[playerid][pSex],
PlayerInfo[playerid][pOrigin],
PlayerInfo[playerid][pMuted],
PlayerInfo[playerid][pCash],
PlayerInfo[playerid][pAccount],
PlayerInfo[playerid][pPret],
PlayerInfo[playerid][pPhoneBook],
PlayerInfo[playerid][pSuspendedTime],
PlayerInfo[playerid][pSwat],
PlayerInfo[playerid][pJob],
PlayerInfo[playerid][pStealCheck],
PlayerInfo[playerid][pJailed],
PlayerInfo[playerid][pJailTime],
PlayerInfo[playerid][pDrugs],
PlayerInfo[playerid][pMember],
PlayerInfo[playerid][pRank],
PlayerInfo[playerid][pChar],
PlayerInfo[playerid][pHealth],
PlayerInfo[playerid][pInt],
PlayerInfo[playerid][pSQLID]);
MySQLCheckConnection();
    mysql_query(string);

Elle est censée sauvegarder les variables ci-dessous, mais rien du tout...

Avez vous une idée ?
« Modifié: 24 Mai 2014, 08:51:35 par Gzsume »


Hors ligne GtaManiac

  • Votre serviteur bien aimé
  • *
  • Redforce member
  • Messages: 8541
    • Voir le profil
    • GTAOnline.net
Re : Problème requête SQL
« Réponse #1 le: 01 Mai 2014, 16:31:34 »
Salut,

Tu as des erreurs de syntaxe à la fin de ta requête, tu as mis une virgule et tu ne ferme pas la parenthèse.

Change :

Code: (mysql) [Sélectionner]
WHERE id=%d",
Par :

Code: (mysql) [Sélectionner]
WHERE id=%d");
Mais normalement pawno te retourne les erreurs non ? tu aurais du t'en apercevoir tout seul, c'est comme en php, quand il y a un soucis de syntaxe ça n'affiche rien et/ou ne fait rien car il ne comprends pas.
GTAOnline - TwitchFacebook - Twitter

"Le problème, c'est le choix" - Néo

Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3550
    • Voir le profil
Re : Problème requête SQL
« Réponse #2 le: 01 Mai 2014, 16:38:00 »
Ce n'est pas ça l'erreur Maniac, il a laissé une virgule car sa fonction n'était pas terminée. Mais si je me trompe pas c'est une histoire d'Anti-slash ... Car il fait ça sous forme de liste, et pas à la suite.


Adju ♥
(-_-)



Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : Problème requête SQL
« Réponse #3 le: 01 Mai 2014, 16:40:57 »
Salut, merci pour vos réponses  :laugh:

Oui, c'est codé sous forme de liste :)


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Problème requête SQL
« Réponse #4 le: 01 Mai 2014, 16:55:59 »
Salut, tu utilises quel plugin SQL ?



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne GtaManiac

  • Votre serviteur bien aimé
  • *
  • Redforce member
  • Messages: 8541
    • Voir le profil
    • GTAOnline.net
Re : Problème requête SQL
« Réponse #5 le: 01 Mai 2014, 17:01:06 »
Ah ok d'accord je pensais pas que c'était différent sous pawn.

Tu as bien mit un : new string [valeur] avant ton format ? et pourquoi il y a un double apostrophe avant ta liste, c'est spécifique au pawn ?



GTAOnline - TwitchFacebook - Twitter

"Le problème, c'est le choix" - Néo

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : Problème requête SQL
« Réponse #6 le: 01 Mai 2014, 17:07:42 »
Le " (accompagné d'un deuxième "), c'est pour délimité la commande SQL :)
J'utilise a_mysql


Hors ligne GtaManiac

  • Votre serviteur bien aimé
  • *
  • Redforce member
  • Messages: 8541
    • Voir le profil
    • GTAOnline.net
Re : Problème requête SQL
« Réponse #7 le: 01 Mai 2014, 17:44:21 »
Tu peux nous montrés ton code avant la requête ?

Et rajoute (si ça n'est pas déjà fait) :

Code: (mysql) [Sélectionner]
mysql_debug(1);
Il devrait normalement te dire ce qui cloche.
GTAOnline - TwitchFacebook - Twitter

"Le problème, c'est le choix" - Néo

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : Problème requête SQL
« Réponse #8 le: 01 Mai 2014, 19:07:38 »
Code: (pawn) [Sélectionner]
public OnPlayerUpdateSQL(playerid)
{
if(IsPlayerConnected(playerid))
{
    if(PlayerInfo[playerid][pReg]==0) {return 1;}
if(gPlayerLogged[playerid])
{
MySQLCheckConnection();
new string[512];
//SQLLog(query);
if(PlayerInfo[playerid][pHealth] < 2.0) PlayerInfo[playerid][pHealth] = 20.0;

Voila le début de mon code.
J'ai mis le mysql_debug(1); et j'ai pas mal de ligne que je comprends. Mais que dois-je faire ?

NB: j'ai créer une commande qui éxecute la callback qui sauvegarde les données des joueurs, et voici la ligne qui me concerne:

Code: (txt) [Sélectionner]
[19:29:06] CMySQLHandler::Query(UPDATE players_stats SET Roop=0,Baillon=0,Jerrican=0,Confiserie=0,Adrenaline=0,Cigarettes=0,Feuilles=0,Tabac=0,Connected=1,Talkie=1,CarKeyOffer=9999,OfferTime=-1,Wanted=0,Ip='127.0.0.1',CombatStyle=3,Journal=0,Parrain=-1,Email='[email protected]',De=0,Bombe=0,BoomBox=0,Cheque=0 WHERE ID=1055) - An error has occured. (Error ID: 1054, Unknown column 'BoomBox' in 'field list')
En occurrence, ça a l'air de marcher...

« Modifié: 01 Mai 2014, 21:59:48 par GtaManiac »


Hors ligne GtaManiac

  • Votre serviteur bien aimé
  • *
  • Redforce member
  • Messages: 8541
    • Voir le profil
    • GTAOnline.net
Re : Problème requête SQL
« Réponse #9 le: 01 Mai 2014, 21:58:51 »
Utiliser la balise

Code: (text) [Sélectionner]
[code=pawn] ou [code=mysql]

Parce-que ça pique un peu les yeux.

Le debug est la pour te montrer les erreurs en logeant les actions, ça a peut être l'air de marcher comme tu dis mais tu as une erreur dans la liste des champs, ta requête est donc invalide et n'effectuera pas en théorie l'update ce qui est apparemment le cas ici et en l’occurrence comme mentionner par le log du debug, la colonne "BoomBox" est inconnu.

Généralement avec ce type d'erreur, c'est qu'il manque une colonne dans ta table players_stats, tu as peut être oublié de la créer :smile:
GTAOnline - TwitchFacebook - Twitter

"Le problème, c'est le choix" - Néo

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Problème requête SQL
« Réponse #10 le: 02 Mai 2014, 18:54:05 »
La colonne BoomBox n'existe pas va la créer ou vérifie si c'est pas un autre nom.
Code: (SQL) [Sélectionner]
ALTER TABLE `players_stats` ADD `BoomBox` INT(nb)
Nippah !

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : Problème requête SQL
« Réponse #11 le: 06 Mai 2014, 11:56:03 »
Salut,

Oui c'était ça en effet, merci  :biggrin:


Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : Problème requête SQL
« Réponse #12 le: 07 Mai 2014, 12:00:35 »
Une autre question ou je dois créer un autre sujet ?

J'ai un problème avec cette ligne:

format(query, 300, "UPDATE players SET %s=%f WHERE id=%d", sqlvalname, sqlupdateflo, sqlplayerid);
mysql_query(query);

Quand je compile, il me dit "tag mismatch"... J'ai regardé pas mal de fois sur le wiki et je ne vois pas ce qui cloche...

http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_query

Merci à vous


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Problème requête SQL
« Réponse #13 le: 07 Mai 2014, 12:23:02 »
Tu utilise quelle version du plugin ?



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : Problème requête SQL
« Réponse #14 le: 07 Mai 2014, 12:41:23 »
La toute dernière, la R38