TRIE ET FILTRE UNIVERSEL DE REQUÊTES DANS UN FORMULAIRE À PARTIR DE SES CONTRÔLE
kiki2sirom
Messages postés153Date d'inscriptionmardi 17 août 2004StatutMembreDernière intervention23 décembre 2010
-
31 août 2007 à 09:58
cs_8Tnerolf8
Messages postés30Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 novembre 2009
-
10 sept. 2007 à 05:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_8Tnerolf8
Messages postés30Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 novembre 2009 10 sept. 2007 à 05:53
Merci pour ta réponse.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 9 sept. 2007 à 11:37
Quand on contrôle aussi les connexions.
Typiquement, pour des applications au sein d'un intranet, par exemple, où l'on contrôle parfaitement les postes clients.
cs_8Tnerolf8
Messages postés30Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 novembre 2009 9 sept. 2007 à 11:13
Bonjour Malalam
Devant tes remarques ajoutées à celle de Coucou747, je me suis à nouveau penché sur cette histoire de mysql_pconnect.
Il faut savoir que j'ai monté mon propre serveur MySQL et que mes appels à la base de données se font en local.
J'ai donc regardé comment se comportaient les connexions permanentes par divers test d'accès à V.I.P.E.R.E.
Il en résulte bien qu'il y a des PID associés pour chaque connexion distante qui restent stockées dans l'éventualité de nouvelles domandes SQL provenant du même PC ayant ouvert la connexion.
Ce que je n'avais pas pensé, et je vous remercie, par vos commentaires, de m'avoir aidé à prendre conscience de la chose, c'est qu'avec des postes en DHCP, il peut y avoir du jour au lendemain plusieurs connexions fantômes qui encombreront mon serveur pour des prunes, sachant que pour chaque IP différente il y a une nouvelle connexion qui s'établira.
Ayant paramétré pour le moment un maximum de 1200 connexions, j'avoue que très vite, avec mysql_pconnect, ça risque de saturer. Je vais donc modifier la source de mon code pour mettre une fonction mysql_connect au lieu de mysql_pconnect.
J'aurais du coup une question à poser. Quand donc utilise-t-on mysql_pconnect ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 8 sept. 2007 à 10:53
Hello,
"Sachant qu'une connexion mysql_pconnect ne retente pas une connexion à la base si elle est déja ouverte, afin de soulager mon serveur en process inutiles, du fait de réouvrir la connexion à chaque ouverture de page avec mysql_connect, j'ai pris la décision d'ouvrir une connexion permanente entre chaque joueur et la base de données afin de gagner du temps."
Tu as bien lu ce qu'était une connexion persistente ? Dans le cadre d'un jeu en ligne, c'est une très mauvaise option, SAUF si tu as suffisemment de connexions pour TOUS tes joueurs.
C'est vraiment le cas...?
cs_8Tnerolf8
Messages postés30Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 novembre 2009 3 sept. 2007 à 07:18
Merci à coucouc747 et CODEFALSE qui m'ont permis d'améliorer grandement la lisibilité de mon code et d'apporter les modifications précitées que vous pourrez trouver dans le zip mis à jour.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 31 août 2007 à 23:33
8Tnerolf8, tu as probablement raison, faisons alors une critique plus constructive :
<? c'est vraiment tres mauvais : tu t'en appercevra le jours ou tu feras un php qui cree un xml, rss par exemple... tu ne pourras pas alors ecrire <?xml ... oblige de faire un echo, ce qui n'est pas forcement propre... pour cette raison, short tags est a off sous php6 et beaucoup de serv php5 :)
pour ton <script language="javascript"> : <script type="text/javascript"> serait plus aux normes
sinon, ton code n'etant pas indente, il devient difficile a lire
cs_8Tnerolf8
Messages postés30Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 novembre 2009 31 août 2007 à 21:16
A l'attention de CODEFALSE
Je n'ai pas mal réagi aux propos de KIKI2SIROM et accepte sans soucis les critiques. Ma réponse à cette personne est explicative dans l'optique de faire valoir mon point de vue.
Par contre, je n'accepte guère les attaques gratuites et stériles du style, je cite:
"ça sent le code pompé un peu partout sans n'y avoir rien compris"
"regarde sur php.net la fonction : mysql_pconnect ==> je ne suis pas convaincu que tu veuilles ici ouvrir une connexion permanente à MySQL"
J'accepte que l'on dise "c'est ma fois, sacrément le bordel le code... ". Par contre, que l'on étaye ensuite ce point de vue, dans la courtoisie et l'objectivité.
Je pense que justement, ce type de forum d'exposition de code est là pour présenter des solutions à des personnes afin que ces dernières gagnent du temps, et lorsque l'on peut, proposer des améliorations de l'existant, chose que j'ai fait dans la rubrique Javascript concernant le menu d'Iubito.
J'ai soumis mes scripts PHP dans l'optique d'apporter ma contribution à la communauté et rien d'autre. Si je vois que les retours sont sarcastiques et ne sont que l'expression d'un sentiment de supériorité du confirmé envers le novice, alors, par correction, ayant compris que ce type de forum n'est destiné qu'à être une "cour des grands", je continuerai mon bonhomme de chemin dans la plus parfaite discrétion.
cs_8Tnerolf8
Messages postés30Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 novembre 2009 31 août 2007 à 21:01
Je suis en train de développer un jeu en ligne basé sur une base de données où pratiquement chaque page interroge la-dite base.
Sachant qu'une connexion mysql_pconnect ne retente pas une connexion à la base si elle est déja ouverte, afin de soulager mon serveur en process inutiles, du fait de réouvrir la connexion à chaque ouverture de page avec mysql_connect, j'ai pris la décision d'ouvrir une connexion permanente entre chaque joueur et la base de données afin de gagner du temps.
Je me trompe peut être, mais c'est ce que j'ai pu interpréter de la connexion mysql_pconnect.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 31 août 2007 à 20:50
Essaye de ne pas prendre mal les conseils donnés, ils ne sont pas là pour te descendre, mais pour te conseiller justement. Tu es autodidacte, peut-être, mais apprends aussi a recevoir des autres alors.
Si tu réagis mal, tu n'aura plus de conseils et c'est jamais une bonne chose.
Essaye de voir comment fonctionne PHP5, pourquoi, comme KIKI2SIROM t'a dit, il faut mettre <?php au lieu de <?, faire les fonctions de "comptage" avant les boucles et pas pendant, etc.
Regarde aussi au niveau de l'agencement du code HTML en restant valide W3C (le fait d'être valide W3C, c'est tout simplement pour respecter la sémantique et avoir un code qui respecte un certain standard, qui permettrait à tous les navigateurs d'afficher les mêmes pages (si tous les navigateurs respectaient ce standard...))
Regarde aussi du coté des structures en MVC, qui te sont plus faciles d'acces grace au php5.
Tout ce qui t'es donnée en conseil (par tout le monde), ne fera qu'améliorer ton site
Bien cordialement
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 31 août 2007 à 17:35
sciemment ? pourquoi persistante cette connexion ?
cs_8Tnerolf8
Messages postés30Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention17 novembre 2009 31 août 2007 à 14:23
Je n'ai pas pompé ce code, je l'ai élaboré seul à partir de mes neurones.
Quant aux maladresses que tu présentes, il faut savoir :
- Par rapport aux maladresses de syntaxes et d'écriture, je suis autodidacte et de ce fait j'écris comme je peux afin de réaliser mes objectifs.
- Sur mon site en projet, j'ai juste pris un forum que j'ai adapté ensuite à mes besoins.
- Le mysql_pconnect est mis sciemment choisi par rapport à l'exploitation de ma base de données au sein de mon site
- Enfin, par rapport aux balises manquantes, affiche la source du lien que j'ai mis. Le fichier Ma_feuille.php ne contient que les indications nécessaires pour intégrer mon module au sein d'une page PHP contenant d'autres éléments.
Cordialement.
kiki2sirom
Messages postés153Date d'inscriptionmardi 17 août 2004StatutMembreDernière intervention23 décembre 2010 31 août 2007 à 09:58
ça sent le code pompé un peu partout sans n'y avoir rien compris
je vais faire qq remarques qualitatives :
* <? ==> <?php : à moins que tu aies appris le PHP avec PHP2, je ne comprends pas ce short_open_tag, pourtant rappelé maintes et maintes fois
* il manque un DOCTYPE
* <form Name="Form1" Method="post"> : ce n'est pas du français c'est de la prog que tu essayes de faire là: <form name="Form1" method="post">
* regarde sur php.net la fonction : mysql_pconnect ==> je ne suis pas convaincu que tu veuilles ici ouvrir une connexion permanente à MySQL
* ne pas faire :
for($a=0;$a<sizeof($GLOBALS["Boutons"]["Nom"]);$a++)
mais faire :
$nb=sizeof($GLOBALS["Boutons"]["Nom"]);
for($a=0;$a<$nb;$a++)...
tu vois pourquoi ??
* <option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
<option value="60">60</option>
<option value="70">70</option>
<option value="80">80</option>
<option value="90">90</option>
<option value="100">100</option>
tu pourrais faire du style for ($i=10;$i<=100;$i+=10)...
c'est ma fois, sacrément le bordel le code... après le reste je ne teste pas ,ce n'est pas mon boulot de tester CA
sur ce...
kiki
10 sept. 2007 à 05:53
9 sept. 2007 à 11:37
Typiquement, pour des applications au sein d'un intranet, par exemple, où l'on contrôle parfaitement les postes clients.
9 sept. 2007 à 11:13
Devant tes remarques ajoutées à celle de Coucou747, je me suis à nouveau penché sur cette histoire de mysql_pconnect.
Il faut savoir que j'ai monté mon propre serveur MySQL et que mes appels à la base de données se font en local.
J'ai donc regardé comment se comportaient les connexions permanentes par divers test d'accès à V.I.P.E.R.E.
Il en résulte bien qu'il y a des PID associés pour chaque connexion distante qui restent stockées dans l'éventualité de nouvelles domandes SQL provenant du même PC ayant ouvert la connexion.
Ce que je n'avais pas pensé, et je vous remercie, par vos commentaires, de m'avoir aidé à prendre conscience de la chose, c'est qu'avec des postes en DHCP, il peut y avoir du jour au lendemain plusieurs connexions fantômes qui encombreront mon serveur pour des prunes, sachant que pour chaque IP différente il y a une nouvelle connexion qui s'établira.
Ayant paramétré pour le moment un maximum de 1200 connexions, j'avoue que très vite, avec mysql_pconnect, ça risque de saturer. Je vais donc modifier la source de mon code pour mettre une fonction mysql_connect au lieu de mysql_pconnect.
J'aurais du coup une question à poser. Quand donc utilise-t-on mysql_pconnect ?
8 sept. 2007 à 10:53
"Sachant qu'une connexion mysql_pconnect ne retente pas une connexion à la base si elle est déja ouverte, afin de soulager mon serveur en process inutiles, du fait de réouvrir la connexion à chaque ouverture de page avec mysql_connect, j'ai pris la décision d'ouvrir une connexion permanente entre chaque joueur et la base de données afin de gagner du temps."
Tu as bien lu ce qu'était une connexion persistente ? Dans le cadre d'un jeu en ligne, c'est une très mauvaise option, SAUF si tu as suffisemment de connexions pour TOUS tes joueurs.
C'est vraiment le cas...?
3 sept. 2007 à 07:18
31 août 2007 à 23:33
<? c'est vraiment tres mauvais : tu t'en appercevra le jours ou tu feras un php qui cree un xml, rss par exemple... tu ne pourras pas alors ecrire <?xml ... oblige de faire un echo, ce qui n'est pas forcement propre... pour cette raison, short tags est a off sous php6 et beaucoup de serv php5 :)
pour ton <script language="javascript"> : <script type="text/javascript"> serait plus aux normes
sinon, ton code n'etant pas indente, il devient difficile a lire
31 août 2007 à 21:16
Je n'ai pas mal réagi aux propos de KIKI2SIROM et accepte sans soucis les critiques. Ma réponse à cette personne est explicative dans l'optique de faire valoir mon point de vue.
Par contre, je n'accepte guère les attaques gratuites et stériles du style, je cite:
"ça sent le code pompé un peu partout sans n'y avoir rien compris"
"regarde sur php.net la fonction : mysql_pconnect ==> je ne suis pas convaincu que tu veuilles ici ouvrir une connexion permanente à MySQL"
J'accepte que l'on dise "c'est ma fois, sacrément le bordel le code... ". Par contre, que l'on étaye ensuite ce point de vue, dans la courtoisie et l'objectivité.
Je pense que justement, ce type de forum d'exposition de code est là pour présenter des solutions à des personnes afin que ces dernières gagnent du temps, et lorsque l'on peut, proposer des améliorations de l'existant, chose que j'ai fait dans la rubrique Javascript concernant le menu d'Iubito.
J'ai soumis mes scripts PHP dans l'optique d'apporter ma contribution à la communauté et rien d'autre. Si je vois que les retours sont sarcastiques et ne sont que l'expression d'un sentiment de supériorité du confirmé envers le novice, alors, par correction, ayant compris que ce type de forum n'est destiné qu'à être une "cour des grands", je continuerai mon bonhomme de chemin dans la plus parfaite discrétion.
31 août 2007 à 21:01
Sachant qu'une connexion mysql_pconnect ne retente pas une connexion à la base si elle est déja ouverte, afin de soulager mon serveur en process inutiles, du fait de réouvrir la connexion à chaque ouverture de page avec mysql_connect, j'ai pris la décision d'ouvrir une connexion permanente entre chaque joueur et la base de données afin de gagner du temps.
Je me trompe peut être, mais c'est ce que j'ai pu interpréter de la connexion mysql_pconnect.
31 août 2007 à 20:50
Si tu réagis mal, tu n'aura plus de conseils et c'est jamais une bonne chose.
Essaye de voir comment fonctionne PHP5, pourquoi, comme KIKI2SIROM t'a dit, il faut mettre <?php au lieu de <?, faire les fonctions de "comptage" avant les boucles et pas pendant, etc.
Regarde aussi au niveau de l'agencement du code HTML en restant valide W3C (le fait d'être valide W3C, c'est tout simplement pour respecter la sémantique et avoir un code qui respecte un certain standard, qui permettrait à tous les navigateurs d'afficher les mêmes pages (si tous les navigateurs respectaient ce standard...))
Regarde aussi du coté des structures en MVC, qui te sont plus faciles d'acces grace au php5.
Tout ce qui t'es donnée en conseil (par tout le monde), ne fera qu'améliorer ton site
Bien cordialement
31 août 2007 à 17:35
31 août 2007 à 14:23
Quant aux maladresses que tu présentes, il faut savoir :
- Par rapport aux maladresses de syntaxes et d'écriture, je suis autodidacte et de ce fait j'écris comme je peux afin de réaliser mes objectifs.
- Sur mon site en projet, j'ai juste pris un forum que j'ai adapté ensuite à mes besoins.
- Le mysql_pconnect est mis sciemment choisi par rapport à l'exploitation de ma base de données au sein de mon site
- Enfin, par rapport aux balises manquantes, affiche la source du lien que j'ai mis. Le fichier Ma_feuille.php ne contient que les indications nécessaires pour intégrer mon module au sein d'une page PHP contenant d'autres éléments.
Cordialement.
31 août 2007 à 09:58
je vais faire qq remarques qualitatives :
* <? ==> <?php : à moins que tu aies appris le PHP avec PHP2, je ne comprends pas ce short_open_tag, pourtant rappelé maintes et maintes fois
* il manque un DOCTYPE
* <form Name="Form1" Method="post"> : ce n'est pas du français c'est de la prog que tu essayes de faire là: <form name="Form1" method="post">
* regarde sur php.net la fonction : mysql_pconnect ==> je ne suis pas convaincu que tu veuilles ici ouvrir une connexion permanente à MySQL
* ne pas faire :
for($a=0;$a<sizeof($GLOBALS["Boutons"]["Nom"]);$a++)
mais faire :
$nb=sizeof($GLOBALS["Boutons"]["Nom"]);
for($a=0;$a<$nb;$a++)...
tu vois pourquoi ??
* <option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
<option value="60">60</option>
<option value="70">70</option>
<option value="80">80</option>
<option value="90">90</option>
<option value="100">100</option>
tu pourrais faire du style for ($i=10;$i<=100;$i+=10)...
c'est ma fois, sacrément le bordel le code... après le reste je ne teste pas ,ce n'est pas mon boulot de tester CA
sur ce...
kiki