par
ouckileou » 02 juil. 2005, 14:08
cela fait beaucoup de tests, tu pourrais effectivement simplifier, voici quelques pistes :
- remplaces tous tes "if" concernant les choix de dates par un "switch"
=>
http://fr2.php.net/manual/de/control-st ... switch.php
- tu peux virer un de ces 2 tests :
if ($mots_cle != "" && $parution =="toutes") {
$select .= "where secteur_activite LIKE '%". $mots_cle ."%' ";
}
if ($mots_cle != "" && $parution !="toutes") {
$select .= "AND secteur_activite LIKE '". $mots_cle ."%' ";
}
regarde ce petit truc :
http://www.phpfrance.com/forums/voir_sujet-3902.php
enfin, je mettrais un bémol au message précédent de Kmeleon, à partir du moment où tu peux faire une sélection en SQL, fais la en SQL et pas en PHP
si tu testes le mot-clé en SQL et la date en PHP, tu peux avoir ça
5000 articles dans la base, 4000 qui contiennent le mot-clé, 10 postés aujourd'hui
résultat tu va parcourir 4000 lignes de résultats, pour faire 4000 tests de date et n'en garder que 10... tu va sérieusement ralentir ton script, alors que MySQL t'aurais fait ça en 2 temps 3 mouvements

cela fait beaucoup de tests, tu pourrais effectivement simplifier, voici quelques pistes :
- remplaces tous tes "if" concernant les choix de dates par un "switch"
=> http://fr2.php.net/manual/de/control-structures.switch.php
- tu peux virer un de ces 2 tests :
[php]
if ($mots_cle != "" && $parution =="toutes") {
$select .= "where secteur_activite LIKE '%". $mots_cle ."%' ";
}
if ($mots_cle != "" && $parution !="toutes") {
$select .= "AND secteur_activite LIKE '". $mots_cle ."%' ";
}[/php]
regarde ce petit truc : http://www.phpfrance.com/forums/voir_sujet-3902.php
enfin, je mettrais un bémol au message précédent de Kmeleon, à partir du moment où tu peux faire une sélection en SQL, fais la en SQL et pas en PHP
si tu testes le mot-clé en SQL et la date en PHP, tu peux avoir ça
5000 articles dans la base, 4000 qui contiennent le mot-clé, 10 postés aujourd'hui
résultat tu va parcourir 4000 lignes de résultats, pour faire 4000 tests de date et n'en garder que 10... tu va sérieusement ralentir ton script, alors que MySQL t'aurais fait ça en 2 temps 3 mouvements
;)