Aller au contenu
Invision Board France

Resynchroniser Les Sujets


thewiseoldman

Messages recommandés

Pour des raisons diverses il arrive que le nombre de réponses dans un sujet soit érroné, toujours inférieur, ce qui a pour effet que certaines réponses ne s'affichent pas.

 

Alors voici une petite requête SQL en deux étapes pour remettre tout le monde d'accord.

 

Premièrement mettre les forums offline

Deuxièmement aller dans phpmyadmin ou équivalent

Exécuter cette requête en changeant 5000 par le nombre de sujets sur vos forums, évidemment si votre préfixe n'est pas ibf_ modifiez la requête:

SELECT CONCAT( 'UPDATE ibf_topics SET ibf_topics.posts=' ) , COUNT( ibf_posts.pid ) - 1, CONCAT( 'WHERE ibf_topics.tid =' ) , ibf_posts.topic_id

FROM ibf_topics, ibf_posts

WHERE ibf_topics.tid = ibf_posts.topic_id

GROUP BY ibf_topics.tid

LIMIT 0, 5000

Jouer avec les options d'affichage du résultat pour afficher la totalité des réponses ce qui donnerai si vous avez un peu moins de 5000 sujets :
Afficher 5000 ligne(s) à partir de l'enregistrement n°  0

en mode  horizontal et répéter les en-têtes à chaque groupe de 5000

Ensuite deux options si vos résultats sont précédés ou suivis par Editer/ Supprimer (si les lignes de résultats sont propres alors passez directement à la sélection) enfin du texte n'ayant rien à voir avec le résultats des requêtes alors cherchez le lien version imprimable généralement en bas à gauche et cliquez dessus, annuler l'impression, sélectionnez toutes les lignes de ce style :

UPDATE ibf_topics SET ibf_topics.posts= 36 WHERE ibf_topics.tid = 244 ;

UPDATE ibf_topics SET ibf_topics.posts= 9 WHERE ibf_topics.tid = 245 ;

UPDATE ibf_topics SET ibf_topics.posts= 15 WHERE ibf_topics.tid = 246 ;

UPDATE ibf_topics SET ibf_topics.posts= 6 WHERE ibf_topics.tid = 247 ;

UPDATE ibf_topics SET ibf_topics.posts= 2 WHERE ibf_topics.tid = 248 ;

UPDATE ibf_topics SET ibf_topics.posts= 15 WHERE ibf_topics.tid = 249 ;

UPDATE ibf_topics SET ibf_topics.posts= 74 WHERE ibf_topics.tid = 250 ;

UPDATE ibf_topics SET ibf_topics.posts= 5 WHERE ibf_topics.tid = 251 ;

UPDATE ibf_topics SET ibf_topics.posts= 8 WHERE ibf_topics.tid = 252 ;

Copiez les, enregistrez les dans un fichier, vous devriez avoir autant de lignes que de sujets, dans notre exemple pas loin de 5000 donc.

 

Il ne reste plus qu'à exécuter les requêtes contenues dans ce fichier.

 

Remettre les forums online

 

Je vous l'accorde ces manipulations semblent compliquées mais il n'en est rien.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...

Information importante

En utilisant ce site, vous êtes d’accords avec nos Conditions d’utilisation. Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookies, sinon nous supposerons que vous êtes d’accord pour continuer.