faut-il mieux utiliser les "echo" ou l'HTML?

faut-il mieux utiliser les "echo" ou l'HTML? - PHP - Programmation

Marsh Posté le 04-11-2003 à 09:49:36    

vaut-il meiux faire :
 

Code :
  1. echo " <td><select name='depot_princ[".$i."]' size='1' id=depot_princ_".$i.">";


 
ou faut-il enlever le echo et passer directement en HTML?
 
qu'es qui est plus rapide?
 
PS: printf est-il plus rapide qu'echo , et plus conseillé?
 

Reply

Marsh Posté le 04-11-2003 à 09:49:36   

Reply

Marsh Posté le 04-11-2003 à 10:00:33    

es-ce trop lourd:
 

Code :
  1. echo " <td><select name='depot_princ[".$i."]' size='1' id=depot_princ_".$i.">";
  2. echo "<option value='' selected></option>";
  3. for($k=0;$k<$nb_depot;$k++)
  4.    if($row->depot_princ==$liste_depotprinc_local_final[$k])
  5.        echo "<option value='".$liste_depotprinc_local_final[$k]."' selected>". $liste_depotprinc_local_final[$k]."</option>";
  6.    else
  7.       echo "<option value='".$liste_depotprinc_local_final[$k]."' >". $liste_depotprinc_local_final[$k]."</option>";
  8.                    echo "</select></td>";


 
existe t'il une autre methode de remplir des menus deroulant? ;o)
 
Explication de ce bout de code:
1)en debut demon script je fait toutes les requetes necessaire qui permettront de remplir les menu deroulants  .
2) je stocke les valuers dans des tableaux.
3) Et en suite , je boucle sur le nombre d'element dans le tableaux et j'afiche chaque element du tableau dans le menu deroulant.
 
es-ce une mauvaise technique?
je fais ca pour eviter d'interroger les BdD x fois


Message édité par saxgard le 04-11-2003 à 10:02:19
Reply

Marsh Posté le 04-11-2003 à 10:18:49    

je met 6s pour generer une page de 50 formulaires contennat chacun 60 champs  dont : 27 champs en menu deroulant  
 
ca me parait lent 6s
 
sinon 8s pour  75 formulaires  
 
j'ai l'impression quec l'affichage qui rame un peu etnon pas le traitement sur les bases de données mais bon
 
peut etre ca vient d ema facon d eremplir mes menus deroulants :/

Reply

Marsh Posté le 04-11-2003 à 11:19:28    

Perso j'utilise cette methode pour creer mes select =>
 

Code :
  1. function createSelect($cnx, $tableName, $selectName, $selectClass, $selectValue, $selectOption, $defaultValue) {
  2.    
  3.         // create query to find distinct values of $selectValue in $tableName
  4.         $query = "SELECT DISTINCT $selectValue, $selectOption FROM $tableName";
  5.        
  6.         // run the query on the DB
  7.         $result = @ mysql_query ($query, $cnx);
  8.         // retrieve all distinct values
  9.         while ($row = @ mysql_fetch_array($result)) $resultBuffer[$row[$selectValue]] = $row[$selectOption];
  10.         // start the select widget
  11.         echo "\n<select class=\"$selectClass\" name=\"$selectName\">";     
  12.        
  13.         // check for a default value
  14.         if (isset($defaultValue))
  15.         {
  16.             // yes, there's a default value specified
  17.             // check if the defaultValue is in the database values
  18.             foreach ($resultBuffer as $value => $option)           
  19.                 if ($option == $defaultValue)
  20.                     // yes, show as selected
  21.                     echo "\n\t<option value=\"$value\" selected>$option</option>";
  22.                 else
  23.                     // no, just show as an option
  24.                     echo "\n\t<option value=\"$value\">$option</option>";
  25.         }
  26.         else
  27.         {
  28.             // no defaultValue
  29.             // show database values as options
  30.             foreach ($resultBuffer as $value => $option)           
  31.                 echo "\n\t<option value=\"$value\">$option</option>";
  32.         }
  33.        
  34.         echo "\n</select>";
  35.    
  36.     }


 
Ceci dit, la rapidité d'execution n'est pas vraiment ma principale preoccupation.


Message édité par impulse le 04-11-2003 à 11:21:50
Reply

Marsh Posté le 04-11-2003 à 12:17:12    

impulse a écrit :

Perso j'utilise cette methode pour creer mes select =>
 

Code :
  1. function createSelect($cnx, $tableName, $selectName, $selectClass, $selectValue, $selectOption, $defaultValue) {
  2.    
  3.         // create query to find distinct values of $selectValue in $tableName
  4.         $query = "SELECT DISTINCT $selectValue, $selectOption FROM $tableName";
  5.        
  6.         // run the query on the DB
  7.         $result = @ mysql_query ($query, $cnx);
  8.         // retrieve all distinct values
  9.         while ($row = @ mysql_fetch_array($result)) $resultBuffer[$row[$selectValue]] = $row[$selectOption];
  10.         // start the select widget
  11.         echo "\n<select class=\"$selectClass\" name=\"$selectName\">";     
  12.        
  13.         // check for a default value
  14.         if (isset($defaultValue))
  15.         {
  16.             // yes, there's a default value specified
  17.             // check if the defaultValue is in the database values
  18.             foreach ($resultBuffer as $value => $option)           
  19.                 if ($option == $defaultValue)
  20.                     // yes, show as selected
  21.                     echo "\n\t<option value=\"$value\" selected>$option</option>";
  22.                 else
  23.                     // no, just show as an option
  24.                     echo "\n\t<option value=\"$value\">$option</option>";
  25.         }
  26.         else
  27.         {
  28.             // no defaultValue
  29.             // show database values as options
  30.             foreach ($resultBuffer as $value => $option)           
  31.                 echo "\n\t<option value=\"$value\">$option</option>";
  32.         }
  33.        
  34.         echo "\n</select>";
  35.    
  36.     }


 
Ceci dit, la rapidité d'execution n'est pas vraiment ma principale preoccupation.


 
je te remercie , mais la je voix que tu fais un traitement et tu rempli ton select directementavce les sorties de la BdD et tu fais a peu pres le meme travail que moi  :(
enfin il me semble

Reply

Marsh Posté le 04-11-2003 à 14:08:54    

Saxgard a écrit :

vaut-il meiux faire :
 

Code :
  1. echo " <td><select name='depot_princ[".$i."]' size='1' id=depot_princ_".$i.">";


 
ou faut-il enlever le echo et passer directement en HTML?
 
qu'es qui est plus rapide?
 
PS: printf est-il plus rapide qu'echo , et plus conseillé?
 
 


Le HTML est plus rapide. Et si tu dois passer au php, utilise un maximum les single quote plutôt que les double

Reply

Marsh Posté le 04-11-2003 à 14:14:13    

gizmo a écrit :


Le HTML est plus rapide. Et si tu dois passer au php, utilise un maximum les single quote plutôt que les double


 
elle donnerai quoi alors ma ligne version HTML et/ou avce les quotes?  :)
 

Code :
  1. <td><select name='depot_princ[<?=$i?>]?>' size='1' id=depot_princ_<?=$i?>></td>


 
ca donne ca   ?        
               
   


Message édité par saxgard le 04-11-2003 à 14:15:53
Reply

Marsh Posté le 04-11-2003 à 14:45:11    

gizmo a écrit :


utilise un maximum les single quote plutôt que les double


 
+1 :jap:


---------------
yvele n'est plus.
Reply

Marsh Posté le 04-11-2003 à 14:50:43    

Citation :

utilise un maximum les single quote plutôt que les double


 
Pour quelle raison?

Reply

Marsh Posté le 04-11-2003 à 14:54:54    

impulse a écrit :

Citation :

utilise un maximum les single quote plutôt que les double


 
Pour quelle raison?


 
les chaines en doubles quotes sont traités par php, alors que les chaine en simple quotes ne le sont pas.. :)  
 
dans les chaines en doubles quote tu peux mettre des variables.. genre "blablabla $a blablabla" qui va etre equivalent à "blablabla ".$a." blablabla" , ce qui necessite donc un traitement special de la chaine, afin de trouver d'eventuelles variables (tu peux aussi mettre des expression dans tes chaines grace à {..} )
alors que les simple quotes gère les chaines plus simplement (donc plus rapidemment)


---------------
yvele n'est plus.
Reply

Marsh Posté le 04-11-2003 à 14:54:54   

Reply

Marsh Posté le 04-11-2003 à 15:29:53    

Citation :

les chaines en doubles quotes sont traités par php, alors que les chaine en simple quotes ne le sont pas..    
 
dans les chaines en doubles quote tu peux mettre des variables.. genre "blablabla $a blablabla" qui va etre equivalent à "blablabla ".$a." blablabla" , ce qui necessite donc un traitement special de la chaine, afin de trouver d'eventuelles variables (tu peux aussi mettre des expression dans tes chaines grace à {..} )
alors que les simple quotes gère les chaines plus simplement (donc plus rapidemment)


 
Ah oui c'est vrai, j'avais deja vu ça quelque part. Je garde mes double quotes moi, j'aime bien pouvoir ecrire les variables directement dans mes chaines. :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed