Optimisation du code php
sinifer
Messages postés
312
Date d'inscription
Statut
Membre
Dernière intervention
-
sinifer Messages postés 312 Date d'inscription Statut Membre Dernière intervention -
sinifer Messages postés 312 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
lorsque je lance ma page sa marche très bien sauf que sa prend énormément de temps et je pense qu'il y a un problème d'optimisation dans cette parti du code
mon problème est que quand je lance la page sa m'affiche le champ numéro trois mais sa prend au moin 30 seconde
il y a une liste déroulante et quand je clique sur une campagne sa me lance le point 2 et si je veu voir toute les campagnes je met le point 3
mais sa prend trop de temps je sais pas si il y a moyen d'optimisé sa et si oui comment merci de votre aide
<?php
if (isset($_POST['Envoyer']))
{
$campaign_name = $_POST["cc"];
//1) voire les campagnes qui ont été selectionnée par "toute"
if ($campaign_name == 'tous' )
{
$tous = "SELECT cc_campaign FROM `cc` WHERE cc_campaign not like '%test%' and cc_campaign not like '%sofinco%' group by cc_campaign ORDER BY cc_date DESC";
$tous_cc = mysql_query($tous);
echo 'toutes les stats :';
while ($resultat_cc = mysql_fetch_row($tous_cc)) {
$campaign_name = $resultat_cc[0];
stats_cc($campaign_name);
}
//2)voir les campagnes qui ont été selectionné par nom de campagne
}else {
stats_cc($campaign_name);
}
//3)campagne affiché lorsqu'on lance la page
}else{
$rq = "SELECT cc_campaign FROM `cc` WHERE cc_campaign not like '%test%' and cc_campaign not like '%sofinco%' group by cc_campaign ORDER BY cc_date DESC limit 1";
$row1 = mysql_query($rq);
$result_row = mysql_fetch_assoc($row1);
$campaign_name = $result_row["cc_campaign"];
stats_cc($campaign_name);
}
?>
si jamais ci dessous le code de ma liste déroulante
<form method="POST" action="cc_stats.php" name="stats">
<select size=1 name="cc" >
<option value="0">Choix De La Campagne</option>
<?php
$sql = "SELECT cc_campaign, cc_date FROM `cc` WHERE cc_campaign not like '%test%' and cc_campaign not like '%sofinco%' group by cc_campaign ORDER BY cc_date DESC";
$ReqLog = mysql_query($sql);
while ($resultat = mysql_fetch_row($ReqLog)) {
$campaign_name = $resultat[0];
$value =remplaceNom($campaign_name);
echo '<option value="'.$resultat[0].'">'.$value."_".$resultat[1];
echo '</option>'."\n";
}
echo '<option value="tous">Toutes Les Campagnes<option>';
?>
</select>
<input name="Envoyer" type="submit" value="Envoyer" />
</form>
Merci de votre aide
lorsque je lance ma page sa marche très bien sauf que sa prend énormément de temps et je pense qu'il y a un problème d'optimisation dans cette parti du code
mon problème est que quand je lance la page sa m'affiche le champ numéro trois mais sa prend au moin 30 seconde
il y a une liste déroulante et quand je clique sur une campagne sa me lance le point 2 et si je veu voir toute les campagnes je met le point 3
mais sa prend trop de temps je sais pas si il y a moyen d'optimisé sa et si oui comment merci de votre aide
<?php
if (isset($_POST['Envoyer']))
{
$campaign_name = $_POST["cc"];
//1) voire les campagnes qui ont été selectionnée par "toute"
if ($campaign_name == 'tous' )
{
$tous = "SELECT cc_campaign FROM `cc` WHERE cc_campaign not like '%test%' and cc_campaign not like '%sofinco%' group by cc_campaign ORDER BY cc_date DESC";
$tous_cc = mysql_query($tous);
echo 'toutes les stats :';
while ($resultat_cc = mysql_fetch_row($tous_cc)) {
$campaign_name = $resultat_cc[0];
stats_cc($campaign_name);
}
//2)voir les campagnes qui ont été selectionné par nom de campagne
}else {
stats_cc($campaign_name);
}
//3)campagne affiché lorsqu'on lance la page
}else{
$rq = "SELECT cc_campaign FROM `cc` WHERE cc_campaign not like '%test%' and cc_campaign not like '%sofinco%' group by cc_campaign ORDER BY cc_date DESC limit 1";
$row1 = mysql_query($rq);
$result_row = mysql_fetch_assoc($row1);
$campaign_name = $result_row["cc_campaign"];
stats_cc($campaign_name);
}
?>
si jamais ci dessous le code de ma liste déroulante
<form method="POST" action="cc_stats.php" name="stats">
<select size=1 name="cc" >
<option value="0">Choix De La Campagne</option>
<?php
$sql = "SELECT cc_campaign, cc_date FROM `cc` WHERE cc_campaign not like '%test%' and cc_campaign not like '%sofinco%' group by cc_campaign ORDER BY cc_date DESC";
$ReqLog = mysql_query($sql);
while ($resultat = mysql_fetch_row($ReqLog)) {
$campaign_name = $resultat[0];
$value =remplaceNom($campaign_name);
echo '<option value="'.$resultat[0].'">'.$value."_".$resultat[1];
echo '</option>'."\n";
}
echo '<option value="tous">Toutes Les Campagnes<option>';
?>
</select>
<input name="Envoyer" type="submit" value="Envoyer" />
</form>
Merci de votre aide
A voir également:
- Optimisation du code php
- Code ascii - Guide
- Optimisation pc - Accueil - Utilitaires
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
7 réponses
Hello !
Bon, je n'ai pas tout lu, mais je peux déjà dire que les
Bon, je n'ai pas tout lu, mais je peux déjà dire que les
SELECT [...] WHERE truc NOT LIKE '%machin%'sont très coûteux et à éviter au maximum. En effet, aucun index ne pourra être utilisé dans ce cas, et le SGBD devra rechercher la chaîne "machin" dans chacun des champs. Il faudrait revoir la conception de ta base en ce qui concerne le contenu de ce champ afin de pouvoir effectuer des recherches du type
SELECT [...] WHERE truc NOT LIKE 'machin%'avec un index sur la colonne truc.
Pas envie d'essayer de comprendre un code non indenté, trop désagréable à lire, désolé... Mais a priori c'est correct.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
voilà j'ai effectué les modiff comme tu m'a dis mais c'est toujours aussi lent donc peut-être que tu verra mieu mon erreur avec l'indentation
Merci
Merci
<form method="POST" action="cc_stats.php" name="stats"> <select size=1 name="cc" > <option value="0">Choix De La Campagne</option> <?php $sql = "SELECT cc_campaign, cc_date FROM `cc` WHERE cc_campaign != 'test' and cc_campaign !='mental_power_cc-test' and cc_campaign !='sondage_sofinco' group by cc_campaign ORDER BY cc_date DESC"; $ReqLog = mysql_query($sql); while ($resultat = mysql_fetch_row($ReqLog)) { $campaign_name = $resultat[0]; $value =remplaceNom($campaign_name); echo '<option value="'.$resultat[0].'">'.$value."_".$resultat[1]; echo '</option>'."\n"; } echo '<option value="tous">Toutes Les Campagnes<option>'; ?> </select> <input name="Envoyer" type="submit" value="Envoyer" /> </form> <?php if (isset($_POST['Envoyer'])) { $campaign_name = $_POST["cc"]; //1) voire les campagnes qui ont été selectionnée par "toute" if ($campaign_name == 'tous' ) { $tous = "SELECT cc_campaign FROM `cc` WHERE cc_campaign != 'test' and cc_campaign !='mental_power_cc-test' and cc_campaign !='sondage_sofinco' group by cc_campaign ORDER BY cc_date DESC"; $tous_cc = mysql_query($tous); echo 'toutes les stats :'; while ($resultat_cc = mysql_fetch_row($tous_cc)) { $campaign_name = $resultat_cc[0]; stats_cc($campaign_name); } }else { //2)voir les campagnes qui ont été selectionné par nom de campagne stats_cc($campaign_name); } }else{ //3)campagne affiché lorsqu'on lance la page $rq = "SELECT cc_campaign FROM `cc` WHERE customers_id >= '1' group by cc_campaign ORDER BY cc_date DESC limit 1"; $row1 = mysql_query($rq); $result_row = mysql_fetch_assoc($row1); $campaign_name = $result_row["cc_campaign"]; stats_cc($campaign_name); } ?>