Page 1 sur 1

alleger et boucler ce code

Posté : 29 déc. 2015, 20:38
par grostathar
Bonjour,

Si joint un code qu'il faut que je modifie et boucle par 400 et ça 4 fois
Je m'explique un peu
J'ai un automate qui incrémente un fichier.mdb.
Je veux réalisé un tableau ou 4 fois, 20 actionneurs, codé par 20 possibilités, me renvoi une info
Sous la forme actuelle je crée une requête pour le premier actionneur et ces 20 possibilités, je traduit puis affiche.
Je passe à la ligne suivante de mon tableau et recommence pour le 2 eme actionneur etc etc 20 fois. Ce qui me donne le tableau du premier type d'actionneur. il me reste les 3 autre tableau basé sur le même type.

Conclusion un code de 3000 lignes, une page avec 30 sec de chargement, 1600 requetes mysql dans une page, une modification du code quasi impossible.Mais ça marche et c 'est beau ^^

J'ai bien lut un peu sur les boucles et les fonctions mais entre les exercice simple des tuto et la construction de mon usine à gaz il doit me manqué un peu de pratique et de rapidité de réflexion.
Merci de vos idées pour organisé cela de façon plus pro. ( ça fait 2 sem que je joue avec php allez y doucement :)

Et Bonne fête a vous.

Code : Tout sélectionner

<?php //Code Client Visu Pour Traduction de Mouvement $CodeMouvArr = utf8_decode("Arrivée sac"); $CodeMouvTra = utf8_decode("Trajet"); $CodeMouvDep = utf8_decode("Départ sac"); $CodeMouvIns = utf8_decode("Sac en instance"); $CodeMouvSer = utf8_decode("_Appel Service_"); $CodeMouvSwi = utf8_decode("_Appel xxxxxx"); //Mouvement pour Traduction code Client Visu $CodeMouv01Base = utf8_decode("AC Actionné"); //de 02 à63 $CodeMouv60Base = utf8_decode("Redemarrage Automate"); $CodeMouv61Base = utf8_decode("--Sac en instance"); $CodeMouv62Base = utf8_decode("Sac mal introduit station"); $CodeMouv63Base = utf8_decode("Arrivée sac par purge ramassage"); //Telephone Par Poste Type 0103 pour 01 reseau 1 03 Poste 3 $CodeTele0101 = utf8_decode("17099 / "); //de 0102 a 04020 en passant par 0120 0201 0202 0220 0301 0320 0401 $CodeTele0420 = utf8_decode(""); //Code poste pour Extraction du code Poste Exemple 010612 pour Reseau 01 poste 06 sur 20 Posibilité d'écriture dans la base 12 sur 20 $CodePoste010101 = utf8_decode("1 Bloc Urg"); $CodePoste010102 = utf8_decode("1 Bloc Urg 1"); $CodePoste010103 = utf8_decode("1 Bloc Urg 1"); $CodePoste010104 = utf8_decode("1 Bloc Urg Adultes 3.7"); $CodePoste010105 = utf8_decode("1 Bloc Urg Adultes 3.7 1"); $CodePoste010106 = utf8_decode("1 Bloc Urg Adultes 3.7 1"); $CodePoste010107 = utf8_decode("R01P01Posible07"); $CodePoste010108 = utf8_decode("R01P01Posible08"); $CodePoste010109 = utf8_decode("R01P01Posible09"); $CodePoste010110 = utf8_decode("R01P01Posible10"); $CodePoste010111 = utf8_decode("R01P01Posible11"); $CodePoste010112 = utf8_decode("R01P01Posible12"); $CodePoste010113 = utf8_decode("R01P01Posible13"); $CodePoste010114 = utf8_decode("R01P01Posible14"); $CodePoste010115 = utf8_decode("R01P01Posible15"); $CodePoste010116 = utf8_decode("R01P01Posible16"); $CodePoste010117 = utf8_decode("R01P01Posible17"); $CodePoste010118 = utf8_decode("R01P01Posible18"); $CodePoste010119 = utf8_decode("R01P01Posible19"); $CodePoste010120 = utf8_decode("R01P01Posible20"); //Les 20 Possibles par actionneurs $CodePoste041901 = utf8_decode("R07P19Posible01"); $CodePoste041902 = utf8_decode("R07P19Posible02"); $CodePoste041903 = utf8_decode("R07P19Posible03"); $CodePoste041904 = utf8_decode("R07P19Posible04"); $CodePoste041905 = utf8_decode("R07P19Posible05"); $CodePoste041906 = utf8_decode("R07P19Posible06"); $CodePoste041907 = utf8_decode("R07P19Posible07"); $CodePoste041908 = utf8_decode("R07P19Posible08"); $CodePoste041909 = utf8_decode("R07P19Posible09"); $CodePoste041910 = utf8_decode("R07P19Posible10"); $CodePoste041911 = utf8_decode("R07P19Posible11"); $CodePoste041912 = utf8_decode("R07P19Posible12"); $CodePoste041913 = utf8_decode("R07P19Posible13"); $CodePoste041914 = utf8_decode("R07P19Posible14"); $CodePoste041915 = utf8_decode("R07P19Posible15"); $CodePoste041916 = utf8_decode("R07P19Posible16"); $CodePoste041917 = utf8_decode("R07P19Posible17"); $CodePoste041918 = utf8_decode("R07P19Posible18"); $CodePoste041919 = utf8_decode("R07P19Posible19"); $CodePoste041920 = utf8_decode("R07P19Posible20"); $CodePoste042001 = utf8_decode("R07P20Posible01"); $CodePoste042002 = utf8_decode("R07P20Posible02"); $CodePoste042003 = utf8_decode("R07P20Posible03"); $CodePoste042004 = utf8_decode("R07P20Posible04"); $CodePoste042005 = utf8_decode("R07P20Posible05"); $CodePoste042006 = utf8_decode("R07P20Posible06"); $CodePoste042007 = utf8_decode("R07P20Posible07"); $CodePoste042008 = utf8_decode("R07P20Posible08"); $CodePoste042009 = utf8_decode("R07P20Posible09"); $CodePoste042010 = utf8_decode("R07P20Posible10"); $CodePoste042011 = utf8_decode("R07P20Posible11"); $CodePoste042012 = utf8_decode("R07P20Posible12"); $CodePoste042013 = utf8_decode("R07P20Posible13"); $CodePoste042014 = utf8_decode("R07P20Posible14"); $CodePoste042015 = utf8_decode("R07P20Posible15"); $CodePoste042016 = utf8_decode("R07P20Posible16"); $CodePoste042017 = utf8_decode("R07P20Posible17"); $CodePoste042018 = utf8_decode("R07P20Posible18"); $CodePoste042019 = utf8_decode("R07P20Posible19"); $CodePoste042020 = utf8_decode("R07P20Posible20"); ?> <body> <table class="GlbalTab" > <tr> <th class="HeureTabReseau" COLSPAN="6"> <?php echo date('H:i:s'); ?> </th> </tr> <tr class="LigneGlbalTab"> <th class="colonneGlbalTab"> <table class="TabReseau" > <tr class="trTabReseau"> <th class="TitreTabRes" COLSPAN="6" >Ligne H Reseau 1 </th> </tr> <tr class="trTabReseau"> <th class="thTabReseau1" width="15%"> Il y a </th> <th class="thTabReseau1" width="15%">mouvement</th> <th class="thTabReseau1" width="40%">emetteur</th> <th class="thTabReseau1" width="15%">recepteur</th> <th class="thTabReseau1" width="15%">Telephone</th> </tr> <?php //Exemple du code pour poste 01 du réseau 01 // changement entre réseau 1 3 4 et réseau 7 (2 connections differentes $mdbFilename134 et $mdbFilename7 ////////////////////////CodePoste0101////////////////////////CodePoste0101 //connection au serveur: $cnx = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename134", $user, $pass) or die ("Impossible de se connecter à la bas de donnée") ; //requête SQL: //Changement à chaque poste soit $CodePoste0101 $CodePoste0102 soit les postes 1 et 2 du réseau 1 // $CodePoste0101xx $CodePoste0101yy correspond au possibilité d'ecriture rencontrer dans la base de la valeur poste0101 $sql = "SELECT TOP 1 * FROM urgence where emetteur = '$CodePoste' or emetteur = '$CodePoste010101' or emetteur = '$CodePoste010102' or emetteur = '$CodePoste010103' or emetteur = '$CodePoste010104' or emetteur = '$CodePoste010105' or emetteur = '$CodePoste010106' or emetteur = '$CodePoste010107' or emetteur = '$CodePoste010108' or emetteur = '$CodePoste010109' or emetteur = '$CodePoste010110' or emetteur = '$CodePoste010111' or emetteur = '$CodePoste010112' or emetteur = '$CodePoste010113' or emetteur = '$CodePoste010114' or emetteur = '$CodePoste010115' or emetteur = '$CodePoste010116' or emetteur = '$CodePoste010117' or emetteur = '$CodePoste010118' or emetteur = '$CodePoste010119' or emetteur = '$CodePoste010120' ORDER BY urgence.date DESC, urgence.heure DESC " ; //exécution de la requête: $requete = odbc_do($cnx, $sql) ; //affichage des données: while($result = odbc_fetch_object( $requete ) ) {echo '<tr class="trTabReseau">'; //Créationde la duree a partir de date heure et maintenant identique à chaque fois $ddhh= strtotime(substr($result->date, -4)."-".substr($result->date, -7,2)."-".substr($result->date,-14, 2)." ".$result->heure); $interval = abs($maintenant - $ddhh) ; $jours=floor($interval/86400); $reste=$interval%86400; $heures=floor($reste/3600); $reste=$reste%3600; $minutes=floor($reste/60); If($jours== 0 ) { If($heures== 0 ) { If($minutes== 0 ) { echo '<td class="tdTabReseau1">'."A l'instant ".' </td>'; } Else { echo '<td class="tdTabReseau1">'.$minutes." Min".' </td>'; } } Else {echo '<td class="tdTabReseau1">'.$heures." Heure".' </td>'; } } Else { echo '<td class="tdTabReseau1">'.$jours." Jour".' </td>'; } // Colonne Mouvement identique à chaque fois if($result->mouvement== $CodeMouv46Base || $result->mouvement== $CodeMouv63Base || $result->mouvement== $CodeMouv17Base || $result->mouvement== $CodeMouv18Base || $result->mouvement== $CodeMouv19Base || $result->mouvement== $CodeMouv20Base || $result->mouvement== $CodeMouv21Base) { echo '<td class="TitreRes"><font color="green">'.$CodeMouvArr.' </font></td>'; } else { if($result->mouvement== $CodeMouv01Base || $result->mouvement== $CodeMouv13Base || $result->mouvement== $CodeMouv43Base || $result->mouvement== $CodeMouv44Base || $result->mouvement== $CodeMouv45Base || $result->mouvement== $CodeMouv52Base || $result->mouvement== $CodeMouv53Base) { echo '<td class="TitreRes"><font color="blue">'.$CodeMouvTra.' </font></td>'; } else { if($result->mouvement== $CodeMouv32Base || $result->mouvement== $CodeMouv33Base) { echo '<td class="TitreRes"><font color="blue">'.$CodeMouvDep.' </font></td>'; } else { if($result->mouvement== $CodeMouv40Base || $result->mouvement== $CodeMouv41Base || $result->mouvement== $CodeMouv61Base) { echo '<td class="TitreRes"><font color="blue">'.$CodeMouvIns.' </font></td>'; } else { if($result->mouvement== $CodeMouv06Base || $result->mouvement== $CodeMouv16Base || $result->mouvement== $CodeMouv26Base || $result->mouvement== $CodeMouv62Base) {echo '<td class="TitreRes"><font color="red">'.$CodeMouvSer.' </font></td>'; } else { if($result->mouvement== $CodeMouv02Base || $result->mouvement== $CodeMouv03Base || $result->mouvement== $CodeMouv04Base || $result->mouvement== $CodeMouv05Base || $result->mouvement== $CodeMouv07Base || $result->mouvement== $CodeMouv08Base || $result->mouvement== $CodeMouv09Base || $result->mouvement== $CodeMouv10Base || $result->mouvement== $CodeMouv11Base || $result->mouvement== $CodeMouv12Base || $result->mouvement== $CodeMouv14Base || $result->mouvement== $CodeMouv15Base || $result->mouvement== $CodeMouv19Base || $result->mouvement== $CodeMouv20Base || $result->mouvement== $CodeMouv21Base || $result->mouvement== $CodeMouv22Base || $result->mouvement== $CodeMouv23Base || $result->mouvement== $CodeMouv25Base || $result->mouvement== $CodeMouv31Base || $result->mouvement== $CodeMouv34Base || $result->mouvement== $CodeMouv35Base || $result->mouvement== $CodeMouv36Base || $result->mouvement== $CodeMouv37Base || $result->mouvement== $CodeMouv38Base || $result->mouvement== $CodeMouv39Base || $result->mouvement== $CodeMouv42Base || $result->mouvement== $CodeMouv47Base || $result->mouvement== $CodeMouv48Base || $result->mouvement== $CodeMouv49Base || $result->mouvement== $CodeMouv54Base || $result->mouvement== $CodeMouv56Base || $result->mouvement== $CodeMouv57Base || $result->mouvement== $CodeMouv58Base || $result->mouvement== $CodeMouv59Base) { echo '<td class="TitreRes"><font color="red">'.$CodeMouvSwi.' </font></td>'; } else { echo '<td class="TitreRes"><font color="black">'.$result->mouvement.' </font></td>'; } } } } } } echo '<td class="tdTabReseau1">'.$result->emetteur.' </td>'; echo '<td class="tdTabReseau1">'.$result->recepteur.' </td>'; // Diferent à chaque fois 0101 correspond au tel du reseau 01 poste 01 echo '<td class="tdTabReseau1">'.$CodeTele0101.' </td>'; echo '</tr>'; } ////////////////////////CodePoste0102 //Copie de codeposte0101 puis modification de Codeposte0101 par Codeposte0102 puis CodeTele0101 par CodeTele0102 //connection au serveur: $cnx = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename134", $user, $pass) or die ("Impossible de se connecter à la bas de donnée") ; //requête SQL: $sql = "SELECT TOP 1 * FROM urgence where emetteur = '$CodePoste' or emetteur = '$CodePoste010201' or emetteur = '$CodePoste010202' or emetteur = '$CodePoste010203' or emetteur = '$CodePoste010204' or emetteur = '$CodePoste010205' or emetteur = '$CodePoste010206' or emetteur = '$CodePoste010207' or emetteur = '$CodePoste010208' or emetteur = '$CodePoste010209' or emetteur = '$CodePoste010210' or emetteur = '$CodePoste010211' or emetteur = '$CodePoste010212' or emetteur = '$CodePoste010213' or emetteur = '$CodePoste010214' or emetteur = '$CodePoste010215' or emetteur = '$CodePoste010216' or emetteur = '$CodePoste010217' or emetteur = '$CodePoste010218' or emetteur = '$CodePoste010219' or emetteur = '$CodePoste010220' ORDER BY urgence.date DESC, urgence.heure DESC " ; //exécution de la requête: $requete = odbc_do($cnx, $sql) ; //affichage des données: while($result = odbc_fetch_object( $requete ) ) {echo '<tr class="trTabReseau">'; $ddhh= strtotime(substr($result->date, -4)."-".substr($result->date, -7,2)."-".substr($result->date,-14, 2)." ".$result->heure); $interval = abs($maintenant - $ddhh) ; $jours=floor($interval/86400); $reste=$interval%86400; $heures=floor($reste/3600); $reste=$reste%3600; $minutes=floor($reste/60); If($jours== 0 ) { If($heures== 0 ) { If($minutes== 0 ) { echo '<td class="tdTabReseau1">'."A l'instant ".' </td>'; } Else { echo '<td class="tdTabReseau1">'.$minutes." Min".' </td>'; } } Else {echo '<td class="tdTabReseau1">'.$heures." Heure".' </td>'; } } Else { echo '<td class="tdTabReseau1">'.$jours." Jour".' </td>'; } if($result->mouvement== $CodeMouv46Base || $result->mouvement== $CodeMouv63Base || $result->mouvement== $CodeMouv17Base || $result->mouvement== $CodeMouv18Base || $result->mouvement== $CodeMouv19Base || $result->mouvement== $CodeMouv20Base || $result->mouvement== $CodeMouv21Base) { echo '<td class="TitreRes"><font color="green">'.$CodeMouvArr.' </font></td>'; } else { if($result->mouvement== $CodeMouv01Base || $result->mouvement== $CodeMouv13Base || $result->mouvement== $CodeMouv43Base || $result->mouvement== $CodeMouv44Base || $result->mouvement== $CodeMouv45Base || $result->mouvement== $CodeMouv52Base || $result->mouvement== $CodeMouv53Base) { echo '<td class="TitreRes"><font color="blue">'.$CodeMouvTra.' </font></td>'; } else { if($result->mouvement== $CodeMouv32Base || $result->mouvement== $CodeMouv33Base) { echo '<td class="TitreRes"><font color="blue">'.$CodeMouvDep.' </font></td>'; } else { if($result->mouvement== $CodeMouv40Base || $result->mouvement== $CodeMouv41Base || $result->mouvement== $CodeMouv61Base) { echo '<td class="TitreRes"><font color="blue">'.$CodeMouvIns.' </font></td>'; } else { if($result->mouvement== $CodeMouv06Base || $result->mouvement== $CodeMouv16Base || $result->mouvement== $CodeMouv26Base || $result->mouvement== $CodeMouv62Base) {echo '<td class="TitreRes"><font color="red">'.$CodeMouvSer.' </font></td>'; } else { if($result->mouvement== $CodeMouv02Base || $result->mouvement== $CodeMouv03Base || $result->mouvement== $CodeMouv04Base || $result->mouvement== $CodeMouv05Base || $result->mouvement== $CodeMouv07Base || $result->mouvement== $CodeMouv08Base || $result->mouvement== $CodeMouv09Base || $result->mouvement== $CodeMouv10Base || $result->mouvement== $CodeMouv11Base || $result->mouvement== $CodeMouv12Base || $result->mouvement== $CodeMouv14Base || $result->mouvement== $CodeMouv15Base || $result->mouvement== $CodeMouv19Base || $result->mouvement== $CodeMouv20Base || $result->mouvement== $CodeMouv21Base || $result->mouvement== $CodeMouv22Base || $result->mouvement== $CodeMouv23Base || $result->mouvement== $CodeMouv25Base || $result->mouvement== $CodeMouv31Base || $result->mouvement== $CodeMouv34Base || $result->mouvement== $CodeMouv35Base || $result->mouvement== $CodeMouv36Base || $result->mouvement== $CodeMouv37Base || $result->mouvement== $CodeMouv38Base || $result->mouvement== $CodeMouv39Base || $result->mouvement== $CodeMouv42Base || $result->mouvement== $CodeMouv47Base || $result->mouvement== $CodeMouv48Base || $result->mouvement== $CodeMouv49Base || $result->mouvement== $CodeMouv54Base || $result->mouvement== $CodeMouv56Base || $result->mouvement== $CodeMouv57Base || $result->mouvement== $CodeMouv58Base || $result->mouvement== $CodeMouv59Base) { echo '<td class="TitreRes"><font color="red">'.$CodeMouvSwi.' </font></td>'; } else { echo '<td class="TitreRes"><font color="black">'.$result->mouvement.' </font></td>'; } } } } } } echo '<td class="tdTabReseau1">'.$result->emetteur.' </td>'; echo '<td class="tdTabReseau1">'.$result->recepteur.' </td>'; echo '<td class="tdTabReseau1">'.$CodeTele0102.' </td>'; echo '</tr>'; } ////////////////////////CodePoste0103 // 0104 0105 0106 0119 ////////////////////////CodePoste0120 ?> <tr> <th class="HeureTabReseau" COLSPAN="5"> <?php echo date('H:i:s'); ?> </th> </tr> </table> </Ligne1H> </th> <th class="colonneGlbalTab"> <Ligne3A> <table class="TabReseau" > <?php ////////////////////////CodePoste0201 ////////////////////////CodePoste0220 ?> </table> </Ligne3A> </th> </tr> <tr class="LigneGlbalTab"> <th class="colonneGlbalTab"> <Ligne4B> <table class="TabReseau" > <?php ////////////////////////CodePoste0301 ////////////////////////CodePoste0320 ?> </table> </Ligne4B> </th> <th class="colonneGlbalTab"> <Ligne7I> <table class="TabReseau" > <?php ////////////////////////CodePoste0401 ////////////////////////CodePoste0420 ?> </table> </Ligne7I> </th> </tr> </table> </body> </html>

Re: alleger et boucler ce code

Posté : 30 déc. 2015, 11:12
par kevin254kl
Bonjour,

Je suis pas expert en optimisation mais tu as essayé d'optimiser tes requêtes? après pour l'optimisation c'est surtout par des if pour éviter les traitements inutile, mais à un moment je pense que cela ne dépend plus vraiment du code mais du langage et de la machine ce n'ai que mon humble avis.