Bonjour,

Voila je rencontre un petit problème avec mon code.
Voici une des 10 lignes que j'utilise après ma requête sql pour remplir un document texte:
fwrite($fichier, "circle.bindPopup(\"<b>".$row['siteTitle']."</b><br/><a href=\"airfield-".$row['lienUrl']."-".$row['siteId'].".html\" target=\"_self\">See this airfield</a>\");\n");
Les 9 premières lignes ne renvoient pas d'erreur.
Bien entendu, j'ouvre mon document texte avant et je le referme proprement après.

Voici l'erreur php qui m'est retournée par la console Firefox sur cette ligne:
SyntaxError: missing ) after argument list

Le plus beau dans tout ça, c'est que la ligne inscrite dans mon fichier texte est bonne!
La voilà:
circle.bindPopup("<b>Emmeloord</b><br/><a href="airfield-emmeloord-374.html" target="_self">See this airfield</a>");

En comparaison, voici la ligne générée par php directement:
circle.bindPopup("<b>Emmeloord</b><br/><a href="airfield-emmeloord-374.html" target="_self">See this airfield</a>");

C'est la même!

A l'origine, quand un visiteur appelle ma page, il y a 6 variables php récupérées dans un while sur 1500 ID.
Pour soulager ma BDD, je me suis dit que lire un document texte soulagerait mes requêtes sql.

En mode php+sql pur, tout fonctionne parfaitement. Mais via mon document texte, ça bloque sur la ligne 10 pré-citée.

Qu'est-ce j'ai bien pu oublier pour que ça bloque?

Merci pour votre aide.
Olivier

5 réponses


Salut,

Voici l'erreur php qui m'est retournée par la console Firefox sur cette ligne:

C'est une erreur JS, pas PHP, le PHP s'exécute côté serveur pas client

Pour soulager ma BDD, je me suis dit que lire un document texte soulagerait mes requêtes sql.

C'est pas les bonnes manières de faire, si tu veux soulager une BDD, utilise plutôt Redis, c'est plus approprié qu'un fichier, et de manière générale, ta base de données sera plus rapide qu'un fichier texte, les bases de données sont indéxées, ce qui facilite la recherche

Hexa
Auteur

Bonjour,
merci pour ta réponse.
Mon site tourne depuis un bon moment avec une base mysql et je ne vois pas comment passer à redis.
Tu penses que je fais fausse route en voulant passer par un document txt?
Le document txt serait généré depuis la base sql une fois par mois environ. Chaque visiteur visualisant ma page ferait (sans la savoir) appel aux données du txt alors que si je lis la base sql, c'est une sacrée charge à chaque fois que ma page est appelée... J' environ 2000 visites uniques par jour et j'ai peur d'une sur-charge de ma base...

Si tu as besoin de liens, dis-moi la.

Merci
Olivier

Redis sert de base de données de cache, pas de base de données globale, on y insert juste des données temporaire ou qui ne bougeront jamais.
Si tes requêtes SQL retournent toujours les mêmes résultats, tu peux mettre en cache les résultats, cette méthode est utilisée dans plusieurs framework

Hexa
Auteur

Ha oui? mais c'est ce qu'il me faut ça!
Je file étudier redis....

Merci pour ton aide. Je te tiens au courant.

Hexa
Auteur

Bonjour,
redis est trop compliqué pour moi, je n'ai pas réussi à m'en servir malgré la vidéo de Johnatan à ce sujet.
Je te remercies néanmoins de m'avoir répondu.
J'ai tout de même trouvé mon erreur avec le document texte, il s'agissait d'une erreur de concaténation.
Voilà la bonne syntaxe:
fwrite($fichier, "circle.bindPopup(\"<b>".$row['siteTitle']."</b><br/><a href='airfield-".$row['lienUrl']."-".$row['siteId'].".html'>See this airfield</a>\");\n");

J'ai maintenant une belle carte avec tout mes points géolocalisés dessus via un document texte pour soulager ma base de données.
Carte ici

Chaque point sur la carte mène à la fiche correspondante. Maintenant, je cherche comment faire pour aller de la fiche vers le point précis de la carte...

Encore du sport cérébral en vue...!