Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4412 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  359  360  361  ..  486  487  488  489  490  491
Auteur Sujet :

les développeurs de forums, les 3/4 des forums sont down /o\

n°1361564
Cyrius-c
Posté le 08-05-2006 à 10:41:58  profilanswer
 

Reprise du message précédent :
Salut,
 
J'ai vu dans ce topic qu'il fallait eviter le limit. Actuellement quand j'afifche un sujet, je fais select * from reponse where id_post=$get id post LIMIT 10,20
 
Maintenant que j'ai instauré un compteur de position pour les réponses, je suis capable de faire
select * from reponse where id_post=$get id post AND position>10 AND position<30  
 
La seconde est bien plus rapide n'est-ce pas?

mood
Publicité
Posté le 08-05-2006 à 10:41:58  profilanswer
 

n°1361604
Labbaipier​re
LoOk InTo My EyE
Posté le 08-05-2006 à 11:46:32  profilanswer
 

Citation :

Hall of Fame: www.big-boards.com
 
    * Joce  
 
  - HFR: 8ème forum mondial
   - Doctissomo: 11ème forum mondial
 
    * Core 666 Joce  
 
  - Forum Auto: 26ème forum mondial


Doctissimo vient de passer 10ième :o

n°1361636
anthomicro
Posté le 08-05-2006 à 12:57:42  profilanswer
 

Cyrius-c a écrit :

Salut,
 
J'ai vu dans ce topic qu'il fallait eviter le limit. Actuellement quand j'afifche un sujet, je fais select * from reponse where id_post=$get id post LIMIT 10,20
 
Maintenant que j'ai instauré un compteur de position pour les réponses, je suis capable de faire
select * from reponse where id_post=$get id post AND position>10 AND position<30  
 
La seconde est bien plus rapide n'est-ce pas?


 
Affirmatif  :jap:  
 
Pense à bien vérifier ton id avant (pour éviter les failles de sql injection) et aussi évite le SELECT *, mets les champs que tu sélectionnes.

n°1361640
chaced
Posté le 08-05-2006 à 13:11:25  profilanswer
 

Et pense a indexer position ça peut servir :D

Message cité 1 fois
Message édité par chaced le 08-05-2006 à 13:18:43

---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361641
anthomicro
Posté le 08-05-2006 à 13:14:20  profilanswer
 

en effet :D

n°1361644
Cyrius-c
Posté le 08-05-2006 à 13:17:57  profilanswer
 

anthomicro a écrit :

Affirmatif   :jap:  

 

Pense à bien vérifier ton id avant (pour éviter les failles de sql injection) et aussi évite le SELECT *, mets les champs que tu sélectionnes.

 


Ok merci :jap: . No souci, de toute facon ma requete n'est pas comme ca: Je fais un addlsashe et htmlentite sur $_GET[id] et elect c'est seulement ce que je veux (contenu, auteur etc..).

n°1361645
chaced
Posté le 08-05-2006 à 13:20:28  profilanswer
 

Cyrius-c a écrit :

Ok merci :jap: . No souci, de toute facon ma requete n'est pas comme ca: Je fais un addlsashe et htmlentite sur $_GET[id] et elect c'est seulement ce que je veux (contenu, auteur etc..).


 
if(is_numeric($_GET['id'])) sinon... et pense au quote, sinon l'interpreteur perd un max de vitesse.


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361647
anthomicro
Posté le 08-05-2006 à 13:25:49  profilanswer
 

le is_numeric c'est imparable, te fais pas chier avec des addslashes et htmlentities.

n°1361648
Cyrius-c
Posté le 08-05-2006 à 13:26:01  profilanswer
 

chaced a écrit :

Et pense a indexer position ça peut servir  :D


Indexer le champ position?
SI c'est ca c'est déjà fait  :p

n°1361651
Cyrius-c
Posté le 08-05-2006 à 13:27:53  profilanswer
 

Merci pour le is_numeric, j'y avais pas pensé
"Pense aux quotes"... C'est à dire?

mood
Publicité
Posté le 08-05-2006 à 13:27:53  profilanswer
 

n°1361653
anthomicro
Posté le 08-05-2006 à 13:29:20  profilanswer
 

Optimiser PHP
 
C'est un article que j'ai fait qui traite surtout des astuces de bout de chandelles et non des optimisations d'algo (chose plus importante), j'en ferais un article plus tard. Je dois également faire un article sur l'optimisation SQL, mais bon j'ai trop de boulot  :cry:

n°1361657
chaced
Posté le 08-05-2006 à 13:32:07  profilanswer
 

Cyrius-c a écrit :

Merci pour le is_numeric, j'y avais pas pensé
"Pense aux quotes"... C'est à dire?


 
if(is_numeric($_GET['id'])) est plus rapide que if(is_numeric($_GET[id]))


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361658
Cyrius-c
Posté le 08-05-2006 à 13:32:43  profilanswer
 

Merci, j'ai justement bien lu ton article.  
D'ailleurs bravo, ca m'a bien aidé.
CE que vous vouliez me dire c'est faire plutot  
mysql_query('ma requete')
plutot que mysql_query("ma requete" )
c'est ca?

n°1361659
Cyrius-c
Posté le 08-05-2006 à 13:33:12  profilanswer
 

Ah ok merci je savais pas. :jap:

n°1361660
anthomicro
Posté le 08-05-2006 à 13:33:16  profilanswer
 

Heu... C'est surtout que ce n'est pas valide d'écrire if(is_numeric($_GET[id]))
 
t'auras une erreur avec un error_reporting à E_ALL car id n'est pas une constante mais une chaîne de caractères.

n°1361661
anthomicro
Posté le 08-05-2006 à 13:34:31  profilanswer
 

Cyrius-c a écrit :

Merci, j'ai justement bien lu ton article.  
D'ailleurs bravo, ca m'a bien aidé.
CE que vous vouliez me dire c'est faire plutot  
mysql_query('ma requete')
plutot que mysql_query("ma requete" )
c'est ca?


 
Ouais, l'accélération est minime mais bon, ça t'évite de perdre quelques micro secondes qui pourraient être investies ailleurs quoi  :D

n°1361663
chaced
Posté le 08-05-2006 à 13:36:55  profilanswer
 

anthomicro a écrit :

Heu... C'est surtout que ce n'est pas valide d'écrire if(is_numeric($_GET[id]))
 
t'auras une erreur avec un error_reporting à E_ALL car id n'est pas une constante mais une chaîne de caractères.


 
d'ou le is_numeric a la place du is_int ;)


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361665
Cyrius-c
Posté le 08-05-2006 à 13:41:32  profilanswer
 

anthomicro a écrit :

Ouais, l'accélération est minime mais bon, ça t'évite de perdre quelques micro secondes qui pourraient être investies ailleurs quoi   :D

 


Je suis aussi très axé sur les optimisations ;)
D'ailleurs vous verrez, une fois le forum terminé j'espère etre le plus rapide :d
0.002 s en général ;)

n°1361668
anthomicro
Posté le 08-05-2006 à 13:44:08  profilanswer
 

je parle de ça : $_GET[id] ce n'est pas valide d'écrire ça. On doit écrire $_GET['id']
 
car id n'existe pas en tant que constante. Après oui c'est is_numeric qu'il faut utiliser car le contenu de $_GET['id'] est une string et non un entier. tu peux utiliser ctype_digit() aussi pour savoir si c'est un entier, mais bon j'ai des cas où ça merdait chez moi, voilà pourquoi je prends le is_numeric qui ne m'a jamais posé de problèmes.

n°1361669
chaced
Posté le 08-05-2006 à 13:44:38  profilanswer
 

Cyrius-c a écrit :

Je suis aussi très axé sur les optimisations ;)
D'ailleurs vous verrez, une fois le forum terminé j'espère etre le plus rapide :d
0.002 s en général ;)


 
Apres ça depend du serveur aussi ;)
 
Sur mon 300Mhz, la page d'acceuil est générée en 0.035 secondes :) (sky v4)


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361670
anthomicro
Posté le 08-05-2006 à 13:45:04  profilanswer
 

Cyrius-c a écrit :

Je suis aussi très axé sur les optimisations ;)
D'ailleurs vous verrez, une fois le forum terminé j'espère etre le plus rapide :d
0.002 s en général ;)


 
2 ms en temps de génération SQL seulement ? tu fais combien de requêtes, et ton forum est rempli à peu près comment ?

n°1361672
chaced
Posté le 08-05-2006 à 13:46:11  profilanswer
 

anthomicro a écrit :

je parle de ça : $_GET[id] ce n'est pas valide d'écrire ça. On doit écrire $_GET['id']
 
car id n'existe pas en tant que constante. Après oui c'est is_numeric qu'il faut utiliser car le contenu de $_GET['id'] est une string et non un entier. tu peux utiliser ctype_digit() aussi pour savoir si c'est un entier, mais bon j'ai des cas où ça merdait chez moi, voilà pourquoi je prends le is_numeric qui ne m'a jamais posé de problèmes.


 
Tu peux aussi utiliser
if(preg_match('@[0-9]+@',$_GET['id'])) ou un $id=sprintf('%d',$_GET['id']) mais bon, on va rester simple avec un bon vieux isnumeric :D


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361674
anthomicro
Posté le 08-05-2006 à 13:47:35  profilanswer
 

:lol:

n°1361675
Cyrius-c
Posté le 08-05-2006 à 13:48:39  profilanswer
 

Yep, ca depend de pas mal de parmamètres.
Tiens d'ailleurs j'ai pas essayé sur un ancien ordinateur.

n°1361676
Cyrius-c
Posté le 08-05-2006 à 13:49:46  profilanswer
 

chaced a écrit :

Tu peux aussi utiliser
if(preg_match('@[0-9]+@',$_GET['id'])) ou un $id=sprintf('%d',$_GET['id']) mais bon, on va rester simple avec un bon vieux isnumeric  :D


:d un preg match pour verifier s'il c'est un nombre  :ange:

n°1361678
chaced
Posté le 08-05-2006 à 13:50:31  profilanswer
 

Apres il y a plein d'optimisation possible, j'y passe un temp fou a optimiser ce sale serveur :( mais bon il me le rend bien, ça m'evite de passer a l'offre supérieure :)


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361680
anthomicro
Posté le 08-05-2006 à 13:51:49  profilanswer
 

C'est clair, quand on voit ce que ça peut "rapporter" (ou plutôt ne pas faire perdre) autant optimiser ;)

n°1361681
chaced
Posté le 08-05-2006 à 13:52:02  profilanswer
 

Cyrius-c a écrit :

:d un preg match pour verifier s'il c'est un nombre  :ange:


 
Tu preferes un ereg ?   :whistle:


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361683
chaced
Posté le 08-05-2006 à 13:54:33  profilanswer
 

anthomicro a écrit :

C'est clair, quand on voit ce que ça peut "rapporter" (ou plutôt ne pas faire perdre) autant optimiser ;)


 
Dans le code, j'en viens a faire des trucs du genre remplacer un $i++ par un ++$i... comme si ça apporter vraiement quelque chose lol, mais bon j'ai la concience tranquille, j'economise 1µseconde comme ça :D


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361684
anthomicro
Posté le 08-05-2006 à 13:55:27  profilanswer
 

heu, pourquoi vous faites pas un truc de ce style :
 
function est_numerique($nombre)
{
      $array_nombres=array(0,1,2,3,4,5,6,7,8,9);
 
      for($i=0;$i<strlen($_GET['id']);$i++)
      {
            if(!in_array($_GET['id'][$i],$array_nombres))
            {
                    return FALSE;
            }
      }
 
      return TRUE;
}
 
 
bon ok, je sors ^^

n°1361685
Profil sup​primé
Posté le 08-05-2006 à 13:56:30  answer
 

Anthomicro, interessant ta comparaison des fonctions basiques de PHP.

Message cité 1 fois
Message édité par Profil supprimé le 08-05-2006 à 13:57:01
n°1361686
anthomicro
Posté le 08-05-2006 à 13:57:06  profilanswer
 

chaced a écrit :

Dans le code, j'en viens a faire des trucs du genre remplacer un $i++ par un ++$i... comme si ça apporter vraiement quelque chose lol, mais bon j'ai la concience tranquille, j'economise 1µseconde comme ça :D


 
Le problème est que $i++ et ++$i ne font pas la même chose.
 
Si tu fais ceci :
 
function incrementer($nombre)
{
         return $nombre++;
}
 
echo incrementer(7); //va t'afficher 7
 
tandis que  
 
function incrementer($nombre)
{
          return ++$nombre;
}
 
echo incrementer(7); //va t'afficher 8

n°1361689
anthomicro
Posté le 08-05-2006 à 13:57:55  profilanswer
 


 
:jap:
 
je mets à jour au fur et à mesure l'article de toute façon, et je rajoute de nouvelles fonctions quand j'ai le temps. Je vais bientôt m'attaquer au XML également, ainsi qu'aux fonctions de dates.

n°1361690
chaced
Posté le 08-05-2006 à 13:58:48  profilanswer
 

anthomicro a écrit :

heu, pourquoi vous faites pas un truc de ce style :
 
function est_numerique($nombre)
{
      $array_nombres=array(0,1,2,3,4,5,6,7,8,9);
 
     for($i=0,$j=strlen($_GET['id']);$i<$j);++$i)
      {
            if(!in_array($_GET['id'][$i],$array_nombres))
            {
                    return FALSE;
            }
      }
 
      return TRUE;
}


 
Lol, et oui, le strlen est rappelé a chaque passages dans la boucle ! autant l'appeler une seule fois :lol:
 
Edit : autant remplacer le for par un while aussi  :sleep:

Message cité 1 fois
Message édité par chaced le 08-05-2006 à 14:08:19

---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361691
Limit
Posté le 08-05-2006 à 13:58:49  profilanswer
 

chaced a écrit :

Dans le code, j'en viens a faire des trucs du genre remplacer un $i++ par un ++$i... comme si ça apporter vraiement quelque chose lol, mais bon j'ai la concience tranquille, j'economise 1µseconde comme ça :D


mouais ca m'étonnerait que ca change qqchose et surtout ca n'a rien à voir.

n°1361694
chaced
Posté le 08-05-2006 à 14:03:49  profilanswer
 

Quand on fait un truc du genre $i++%2 il faut mieux proteger le $i++ avec des parentheses, mais bon sur une boucle de 100000 pour un boucle de 3 itérations c'est vrai que l'on s'en fou royal :D
 
Au passage bizarrement un $i=$i+1 est plus rapide qu'un $i++ obtient la meme vitesse qu'un ++$i... alors qu'en C il n'y a pas de différence... Bizarre, surement une histoire de duplication de la donnée en mémoire, incrémentation de cette donnée puis transfert du resultat au lieu d'incrementer directement la destination.


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361695
anthomicro
Posté le 08-05-2006 à 14:03:49  profilanswer
 

chaced a écrit :

Lol, et oui, le strlen est rappelé a chaque passages dans la boucle ! autant l'appeler une seule fois :lol:


 
C'était fait exprès, j'ai voulu faire un truc le plus crade et le plus lent possible  :D  (vu qu'on était partis dans des trips de ce genre)

n°1361696
Profil sup​primé
Posté le 08-05-2006 à 14:04:33  answer
 

anthomicro a écrit :

:jap:
 
je mets à jour au fur et à mesure l'article de toute façon, et je rajoute de nouvelles fonctions quand j'ai le temps. Je vais bientôt m'attaquer au XML également, ainsi qu'aux fonctions de dates.


 
Ca te dérange si je poste un lien dans mon forum?
 
et pour le XML dans le PHP, tres interessant, me suis pris la tête pendant 1 mois dessus :p

Message cité 1 fois
Message édité par Profil supprimé le 08-05-2006 à 14:05:29
n°1361697
chaced
Posté le 08-05-2006 à 14:04:35  profilanswer
 

anthomicro a écrit :

C'était fait exprès, j'ai voulu faire un truc le plus crade et le plus lent possible  :D  (vu qu'on était partis dans des trips de ce genre)


 
Dans ta super fonction je suis sur que le preg_match est devant en perf  :lol:


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1361704
anthomicro
Posté le 08-05-2006 à 14:13:49  profilanswer
 


 
Bah nan au contraire pas de problème pour un lien :jap:

n°1361705
anthomicro
Posté le 08-05-2006 à 14:14:12  profilanswer
 

chaced a écrit :

Dans ta super fonction je suis sur que le preg_match est devant en perf  :lol:


 
C'est fort possible  :lol:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  359  360  361  ..  486  487  488  489  490  491

Aller à :
Ajouter une réponse
 

Sujets relatifs
question avec les forums phpbb2[php] trouver la premier place ou inserer un enregistrement (résolu)
Forums phpBBQui connait l'algo du Passticket et sa mise en place en VB ?
[Merise] Mise en place d'un MCDFocus mal placé....
[Blabla/Prog] Les développeurs foromeurs sont-ils des feignasses?Mise en place d'un formulaire CGI
forums création de site internetJava - Mise en place d'une api (Servlet)
Plus de sujets relatifs à : les développeurs de forums, les 3/4 des forums sont down /o\


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)