Bienvenue, Invité. Merci de vous connecter ou de vous enregister.

Auteur Sujet: OgSpy 3.1.2 et suppression de planètes  (Lu 3492 fois)

roms0406

  • Dev OGSteam
  • Complètement accro !
  • ***
  • Messages: 298
  • Karma: +3/-0
OgSpy 3.1.2 et suppression de planètes
« le: 25 décembre 2012, 15:41:18 »
Bonjour,

Je viens de faire la mise à jour, content de ne plus avoir le bug lors de la suppression d'une planète je décide de tout remettre à zéro et là lors de la suppression d'une planète :

Database MySQL Error
ErrNo:1062: Duplicate entry '3-101' for key 'PRIMARY'
Query:
update ogspy_user_building set planet_id = 101 where planet_id = 110

??....
 

DarkNoon

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 2607
  • Country: fr
  • Karma: +14/-2
  • Retraité Actif
    • Hébergement de serveurs OGSpy
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #1 le: 25 décembre 2012, 15:50:28 »
Le Bug vient de la version précédente. Donc si tu utilises des données qui ont été créé avec une ancienne version d'OGSpy tu peux retomber dans l'erreur.
Héberger votre OGSpy : Hébergement
Réseaux Sociaux OGSteam :Facebook
 

DarkNoon

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 2607
  • Country: fr
  • Karma: +14/-2
  • Retraité Actif
    • Hébergement de serveurs OGSpy
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #2 le: 25 décembre 2012, 17:35:13 »
Sinon la mise à jour s'est bien passée ? Es tu passé par autoupdate ou par par une mise à jour classique ?
Héberger votre OGSpy : Hébergement
Réseaux Sociaux OGSteam :Facebook
 

roms0406

  • Dev OGSteam
  • Complètement accro !
  • ***
  • Messages: 298
  • Karma: +3/-0
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #3 le: 25 décembre 2012, 18:08:18 »
J'ai essayé de supprimer toutes les planètes et lunes pour faire le ménage, mais j'ai l'erreur à chaque fois ...

Sinon j'ai voulu passer par l'autoupdate mais je n'ai pas pu, OGSPY me dit que je n'ai pas les droits nécessaire pour faire la mise à jour (compte admin pourtant), donc j'ai fait une mise à jour manuelle

PS : Comment supprimer les données "planètes" d'un joueur, afin de ne pas reproduire le bug ??
 

DarkNoon

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 2607
  • Country: fr
  • Karma: +14/-2
  • Retraité Actif
    • Hébergement de serveurs OGSpy
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #4 le: 25 décembre 2012, 19:59:27 »
Il faut le faire via phpmyadmin.

Tu vas dans la table ogspy_users et tu repères l'id de ton utilisateur.

Après dans ogspy_building tu vires toutes les lignes qui ont pour user id celui que tu as relevé dans la table des utilisateurs.
Héberger votre OGSpy : Hébergement
Réseaux Sociaux OGSteam :Facebook
 

DarkNoon

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 2607
  • Country: fr
  • Karma: +14/-2
  • Retraité Actif
    • Hébergement de serveurs OGSpy
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #5 le: 25 décembre 2012, 20:21:10 »
Sinon ta planète est bien effacée mais tu prends le message d'erreur à chaque fois :P
Héberger votre OGSpy : Hébergement
Réseaux Sociaux OGSteam :Facebook
 

DarkNoon

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 2607
  • Country: fr
  • Karma: +14/-2
  • Retraité Actif
    • Hébergement de serveurs OGSpy
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #6 le: 29 décembre 2012, 22:47:00 »
Le problème a été identifié. Va falloir que l'on se plonge dans la bête pour le corriger ^^


Suivi ici : [size=78%]https://bitbucket.org/ogsteam/ogspy/issue/4/conflit-de-cl-primaire-lors-de-la-r[/size]


(Vous pouvez vous abonnez à l'ano pour avoir un mail lorsque cela sera corrigé ;-)
Héberger votre OGSpy : Hébergement
Réseaux Sociaux OGSteam :Facebook
 

roms0406

  • Dev OGSteam
  • Complètement accro !
  • ***
  • Messages: 298
  • Karma: +3/-0
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #7 le: 02 janvier 2013, 12:04:55 »
Bonne nouvelle ça !!

Merci et Bonne Année ;)
 

iguypouf

  • Habitué
  • ***
  • Messages: 85
  • Karma: +0/-0
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #8 le: 09 janvier 2013, 13:22:32 »
Juste pour info, cette correction fonctionne toujours :

http://forum.ogsteam.fr/index.php/topic,439.0.html
 

machine

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 1133
  • Country: 00
  • Karma: +14/-0
  • On est tout juste ce qu'on se pardonne
    • A minche alors
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #9 le: 09 janvier 2013, 15:57:52 »
ben en fait c un peu ca le correctifs, malheureusement, ton post est passé a la trappe :s

le correctif sera present dans la prochaine version d ogspy

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/
 

Superbox

  • Complètement accro !
  • *****
  • Messages: 428
  • Karma: +3/-2
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #10 le: 09 janvier 2013, 16:58:30 »
Le problème ici, c'est que la clé primaire (player_id, planet_id => en l’occurrence ici, une partie de la cle, planet_id) sert aussi pour l'ordre des planètes et l'affichage à l'écran (planet-_id = 100, puis 101, 102, ...)
Or, modèle et vue doivent être absolument séparés.
Lier le numéro de la clé primaire à un ordre d'affichage strict dans la vue est une aberration !

Au pire on peut lister les éléments par l'ordre de leur clé primaire, c'est tout.
Mais l'ordonnancement des planètes doit se faire uniquement dans la vue (à l'affichage), et on ne doit en rien altérer le modèle (surtout pas les clé primaires !)
Cependant, on peut rajouter un champ (qui lui, ne fait pas partie de la clé primaire) pour sauvegarder le dernier ordonnancement choisi !

Vous pouvez retourner le problème dans tout les sens, ça sera toujours le bordel

Donc, une solution que je propose :
La clé primaire (player_id, planet_id) devient -> planet_id (auto_increment...ou alors l'id de la planète que l'on récupère dans Ogame)
Player_id devient une clé étrangère vers la table ogspy_user (mais ne doit plus faire partie de la clé primaire).

Ajout d'un champ (planet_pos par expl), et c'est dans celui-ci qu'il faudra y mettre la position de la planète et de sa lune associée telles qu'elles devront être ordonnancé dans la vue (afin que les lunes soient "en phase" avec leurs planètes, à l'affichage).
Note : on peut aussi se passer de ce champ, et lister les planètes/lunes par un ordre arbitraire, mais dans ce cas, il faut oublier la suppression/ré-ordonnancement manuel.

Ainsi, lors d'une suppression, on fait juste "-1" sur l'indice de toutes les planètes dont l'indice est > à l'indice supprimé, mais on ne touche pas aux clés primaires (parce qu'ici, c'est elles qui foutent le bordel lors des décalages, car on se retrouve avec des doublons et donc avec des conflits de clé).
Lors d'un ajout, on fait un +1 sur les indices.
Et si on veut inverser l'ordonnancement de deux planètes, on échange les indice.

Mais en aucun cas nous ne devons toucher aux clés primaires ! C'est une source d'embrouille (et je reste poli)^^

De plus, même s'il y a un problème sur l'incrémentation / décrémentation de ces indices, ça ne générera pas d'erreur sql. Au pire, la planète ne s'affichera pas (après, cela dépend comment est faite la fonction d'affichage...si elle se contente d'afficher en lisant bêtement l'indice, oui, sinon elle affichera deux planètes avec le même indice dans un ordre arbitraire : l'ordre de récupération)
 

machine

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 1133
  • Country: 00
  • Karma: +14/-0
  • On est tout juste ce qu'on se pardonne
    • A minche alors
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #11 le: 09 janvier 2013, 23:52:05 »
ola,

j ai attentivement tout lu ton post

je pense que tu as raison sur tous les points ...


par contre petite question :

ca va impacter la vue espace perso ( eventuellement / stat simu )
au niveau xtense ca demande bcp de modif ?? ?

( parce que actuellement avec le correctif ca fonctionne, l implication et le dev en v5 n est elle pas prioritaire sur l optimisation de la v3 ? )

« Modifié: 09 janvier 2013, 23:55:23 par machine »

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/
 

iguypouf

  • Habitué
  • ***
  • Messages: 85
  • Karma: +0/-0
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #12 le: 10 janvier 2013, 10:40:23 »
Dans ce cas, il y a encore bien plus simple :

Au lieu de faire un planet_id auto-increment, vous faites un planet_id qui recevra... le planet_id du jeu. Ainsi, les coordonnées d'une colo pourront être mises à jour suite à un déménagement sans devoir passer par l'espace perso.

Le second champ gèrera l'ordonnancement, mais... C'est tout :)
 

Superbox

  • Complètement accro !
  • *****
  • Messages: 428
  • Karma: +3/-2
Re : Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #13 le: 10 janvier 2013, 14:54:08 »
Dans ce cas, il y a encore bien plus simple :

Au lieu de faire un planet_id auto-increment, vous faites un planet_id qui recevra... le planet_id du jeu. Ainsi, les coordonnées d'une colo pourront être mises à jour suite à un déménagement sans devoir passer par l'espace perso.

Le second champ gèrera l'ordonnancement, mais... C'est tout :)

Ouaip, c'est ce que je disais aussi (dans une petite parenthèse xD)
Pour Xtense, il devrait y avoir des modifs (puisque la table change), mais après la maintenance/correction sera beaucoup plus aisée, et ça pourra même être réutilisé en tout ou partie pour la v5
 

Masterground

  • Invité
Re : OgSpy 3.1.2 et suppression de planètes
« Réponse #14 le: 09 mars 2013, 18:05:13 »
Il faut le faire via phpmyadmin.

Tu vas dans la table ogspy_users et tu repères l'id de ton utilisateur.

Après dans ogspy_building tu vires toutes les lignes qui ont pour user id celui que tu as relevé dans la table des utilisateurs.

Darknoon, j'ai un membre qui a le même problème

Citer
dans le mod prod je peux pas modifier les position/temparture du ma 12e colo
[16:31:37] vins-Mr K: pareil dans l'espace perso
[16:31:47] vins-Mr K: "Une incohérence a été trouvée dans votre espace personnel
En rapport avec le nombre de vos planetes"

dans le journal OGSpy
Erreur critique mysql - Req : update ogspy_user_building set planet_id = 112 where planet_id = 115 - Erreur n°1062 Duplicate entry '6-112' for key 'PRIMARY'

Comme tu le sais je suis sur le serveur host.darkcity.fr et donc je n'ai pas accès à phpmyadmin
Comment puis-je résoudre ce problème temporairement en attendent un éventuel correctif?