Bonjour,
bloquant sur un point depuis 15 jours je viens demander votre aide. J'ai cherché sur le net et n'ai trouvé nulle part un problème du genre, et donc de solution.
Je développe un système de consultation en PHP d'une base de donnée MySQL afin de pouvoir l'alimenter et la consulter en local sur un navigateur internet.
J'ai créé une page de recherches dans la base avec plusieurs champs interrogeant les différentes tables. Pour ce faire j'ai créé un mini moteur de recherche (le coeur de ma page) qui au premier caractère entré dans le champ de texte, liste la totalité des réponses correspondantes.
Ceci est réalisé par une requête MySQLi en POO.
Pour limiter les accès à la base et donc optimiser la recherche, tous les résultats sont mémorisés dans des variable de session PHP. Au caractère suivant saisi, le moteur tri dans les variables de Session et élimine les résultats qui ne correspondent pas. Ainsi, la liste est affinée au fur et à mesure en ne conservant que les résultats pertinents.
Pour optimiser le code, j'ai donc inclu les requêtes mySQLi dans une fonction PHP.
Au départ tout avait été écrit en MYSQL standard et tout fonctionnait parfaitement. Depuis j'ai traduit l'ensemble du site en MySQLi et depuis cela ne fonctionne plus.
J'ai isolé toutes les parties et tout fonctionne parfaitement, tant que je ne les mets pas dans la fonction.
Pourquoi le MySQLi est il-incompatible avec une utilisation dans une fonction PHP ?
Elément bizarre, si les requêtes MySQLi sont écrite en POO, dès qu'il les atteint, le navigateur interrompt tout fonctionnement et plus rien n'est affiché.
Si j'écris les requêtes en procédural, les requêtes ne donnent aucun résultat, mais la page est interprétée complètement par le navigateur...
Je n'ai pas d'autre solution que de d'intégrer les requêtes en dur dans la page si je ne trouve pas l'origine de ce dysfonctionnement, mais cela me triplera inutilement la taille de la page.
De plus les requêtes étant différentes suivant les champs concernées, il faut que je réécrive sous 3 formes différentes la recherche... En sachant que j'ai fait cela il y a quelques mois et que c'est suffisamment compliqué pour que je ne sache plus exactement comment cela fonctionnait... Bref un gros boulot que j'aimerai éviter...
Merci de votre aide...
Partager