Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Bonjour,
Sur mon site, j'ai créé mon propre système de news. Chaque fois qu'une news est créée, une discussion pour réagir à cette news est automatiquement créée.
Pour cela, j'ai repris un bout de code de post.php :
1- J'insère donc un enregistrement dans ma table punbb_topics.
2- J'insère dans dans punbb_posts.
3- Je mets à jour punbb_topics.
4- Je mets à jour punbb_users.
5- J'appelle update_search_index.
6- J'appelle update_forum.
Tout marchait bien depuis quelques mois maintenant, jusqu'à hier...
Maintenant, update_search_index (dans search_idx.php) provoque :
Erreur : Impossible de retrouver les mots index de recherches.
Le pire, c'est que si j'exécute la requête qui plante, à la main, dans phpMyAdmin, elle fonctionne très bien !
En fait, c'est même chaque requête de update_search_index et update_forum (dans update_forum) qui plante...
Et bien sûr, je suis persuadé de ne pas avoir touché à mon code entre le moment où ça marchait et le moment où ça a commencé à déconner. Mais je me trompe forcément... Le problème est d'ailleurs apparu online et en local en même temps. Et j'ai passé ma soirée dessus hier... J'en peux plus !
Voilà, j'espère que je vous ai donné assez de détails. N'hésitez pas à en demander plus. Et merci d'avance !
Dernière modification par Robloche (31-01-2007 11:51:12)
Hors ligne
Plutôt que de reprendre une quinzaine de lignes de post.php, vous pensez que ce serait peut-être plus simple d'utiliser directement post.php, en lui passant les bonnes données ?
En même temps... post.php reçoit ses données en POST et à part à remplissant un formulaire et en le soumettant automatiquement, je ne vois pas bien comment lui faire passer mes données... 
Je suis ouvert à toute suggestion (surtout celles qui me sortira de la panade).
Hors ligne
salut,
non je pense que reprendre les lignes nécessaires à l'ajout d'une discussion est une bonne méthode
pour avoir plus de détaille sur l'erreur essai d'activer le mode debug
Hors ligne
Merci pour ta réponse.
Je ferai ça ce soir...
(Ca me laisse la journée pour chercher dans la FAQ comment activer le mode debug.
)
Hors ligne
Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?
Pas de support si pas d'adresse de forum !
Hors ligne
Merci beaucoup mais j'avais trouvé, hein. La FAQ était bien en vue et c'était bien en vu dans la FAQ. Enfin merci quand même.
Hors ligne
Bon ben... J'ai activé le mode debug mais ça ne m'avance pas trop... 
Fichier : ***********\forum\include\search_idx.php
Ligne : 136PunBB a rapporté : Impossible de retrouver les mots index de recherches
La base de données a rapporté :
Hors ligne
La requête qui provoque ce message :
$result = $db->query('SELECT id, word FROM '.$db->prefix.'search_words WHERE word IN('.implode(',', preg_replace('#^(.*)$#', '\'\1\'', $unique_words)).')', true) or error('Impossible de retrouver les mots index de recherches', __FILE__, __LINE__, $db->error());
Un exemple concret :
SELECT id, word FROM punbb_search_words WHERE word IN('discussion','est','liée','news','suivante','bar','31.01.2007','foo')
Quand j'exécute cette même requête dans phpMyAdmin, elle fonctionne et me retourne bien un enregistrement.
Comment dire... je suis perdu.
Dernière modification par Robloche (01-02-2007 15:10:37)
Hors ligne
S'il vous manque des info, n'hésitez pas à les demander.
Si vous avez des pistes, n'importe lesquelles, je prends aussi !
Hors ligne
En remontant dans le code de punBB, je me suis aperçu que lors de l'initialisation de l'objet DBLayer, si j'utilise une connexion persistante ($p_connect = true), je n'ai plus de problème par la suite.
Mais...
1. Je ne vois pas bien le rapport avec mon problème.
2. Je n'ai touché à rien de ce côté donc je ne vois pas pourquoi ça ne fonctionne plus depuis une semaine.
Je pense que mon problème est lié au fait que j'utilise une autre connexion à ma base pour faire certaines requêtes (qui n'ont rien à voir avec les tables du forum). Est-ce qu'il pourrait y avoir conflit entre ces deux connexions ?
Si oui, comment le réglé ? Et surtout, qu'ai-je bien pu faire pour que ça ne fonctionne plus alors que j'ai de nombreuses autres pages où j'utilise ma connexion "perso" et l'objet $db de punBB ?
Je sais que ce n'est pas évident de se pencher sur les problèmes de code des autres mais si vous avez la moindre idée... 
Dernière modification par Robloche (02-02-2007 11:37:12)
Hors ligne
Dans le doute ce que je ferais c'est utiliser $db pour tes propres requêtes (évidement il faut que ce soit sur la même bdd
Hors ligne
Oui, oui, pas de souci, c'est sur la même BDD.
Je crois que j'avais essayé de faire comme ça au début mais que j'avais eu des petits problèmes...
Je vais voir de ce côté, merci !
Hors ligne
Mon problème est résou. Si ça peut servir...
Je continue d'utiliser une connexion différente de celle de punBB sur ma BDD mais en revanche, j'ai supprimer tous mes appels à mysql_close().
De toute façon, d'après ce que j'ai lu, c'est complètement inutile, voire mangeur de ressources si on a beaucoup de connexions/deconnexions.
Merci encore à ceux qui m'ont aidé !
Hors ligne