optimisation code

skyangel
Invité n'ayant pas de compte PHPfrance

21 avr. 2006, 15:14

Bonjour,

je voudrais savoir comment je peux optimiser mon code suivant.
si vous avez des remarques
Merci d'avance :)
<?php
include ('entetesecu.php');
require ('fonctions.php');
?>

<?php
//liste les tables
$liste ="SHOW tables from ".$database;
$req_liste = mysql_query ($liste) or die (mysql_error());

?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<!--  encadrement haut-->
<table border="0" cellpadding="0" cellspacing="0" width=920>
	<tr>
		<td  colspan="2" class="CadreMenu"><img src="<?php echo $chemin_image; ?>px.gif" width="150" height="1"></td>
	</tr>
	<tr><img src="<?php echo $chemin_image; ?>px.gif" height="19" width="8" border="0">
		<td width="1" class="CadreMenu"><img src="<?php echo $chemin_image; ?>px.gif" idth="1" height="1"></td>
		<td><!-- fin encadrement haut -->

			<table>
				<tr>
					<td>&nbsp;&nbsp;&nbsp;	&nbsp;</td>
					<td>&nbsp;</td>
					<td><br>
						<font color="#0E78C8">Liste des tables SQL :</font><br><br><table><tr><td colspan="50">
						<?php 
						$i=0;
						while ($ligne_liste = mysql_fetch_array($req_liste,MYSQL_NUM))
						{
							$desc="Select ".$description_table_field." from ".$dbnom_table." where ".$nom_table_table_field." = '".$ligne_liste[0]."'";
							$result_desc=mysql_query($desc) or die (mysql_error());
							$row=mysql_fetch_array($result_desc,MYSQL_NUM);
							if ($i==0)
							{
								echo '<img src="../image/droite.gif">';
								echo '&nbsp;<a target="_blank" href="'.$page_visubdd.$ext.'?table='.$ligne_liste[0].'" class="Menu" name='.$ligne_liste[0].' >'.$ligne_liste[0].'</a><br>';
								echo "&nbsp;&nbsp;&nbsp;";
								echo '<font color="CCCCCC">'.$row[0].'</font><br><br></td><td colspan="100"></td>';
								$i++;
							}
							else
							{
								if ( $i%2 != 0 )
								{
									echo '<td colspan="50">';
									echo '<img src="../image/droite.gif">';
									echo '&nbsp;<a target="_blank" href="'.$page_visubdd.$ext.'?table='.$ligne_liste[0].'" class="Menu" name='.$ligne_liste[0].' >'.$ligne_liste[0].'</a><br>';
									echo "&nbsp;&nbsp;&nbsp;";
									echo '<font color="CCCCCC">'.$row[0].'</font><br><br></td></tr>';
									$i++;
								}
								else
								{
									echo '<tr><td colspan="50">';
									echo '<img src="../image/droite.gif">';
									echo '&nbsp;<a target="_blank" href="'.$page_visubdd.$ext.'?table='.$ligne_liste[0].'" class="Menu" name='.$ligne_liste[0].' >'.$ligne_liste[0].'</a><br>';
									echo "&nbsp;&nbsp;&nbsp;";
									echo '<font color="CCCCCC">'.$row[0].'</font><br><br></td><td colspan="100">&nbsp;</td>';								
									$i++;
								}
						
							}
							
						}
						mysql_free_result($req_liste);
						mysql_free_result($result_desc);
						mysql_close();
						?></table>
					</td>
				</tr>
			</table>
		<img src="<?php echo $chemin_image; ?>px.gif" height="47" width="1" border="0"></td>
		<td width="1" class="CadreMenu"><img src="<?php echo $chemin_image; ?>px.gif" width="1" height="1"></td>
	</tr>
	<tr>
		<td  colspan="2" class="CadreMenu"><img src="<?php echo $chemin_image; ?>px.gif" width="150" height="1"></td>
	</tr>
</table>
<?php include ('pied.php');?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 avr. 2006, 15:34

Hum... tu vires le tout et tu mets un lien vers phpMyAdmin ? (ben quoi, c'est de l'optimisation, et pis t'as pas dit ce que tu voulais faire alors bon... ;))

Bon aller... à essayer :
<table>
<?php 
$i=0; 
while ($ligne_liste = mysql_fetch_array($req_liste,MYSQL_NUM)) { 
	$desc="Select ".$description_table_field." from ".$dbnom_table." where ".$nom_table_table_field." = '".$ligne_liste[0]."'"; 
	$result_desc=mysql_query($desc) or die (mysql_error()); 
	$row=mysql_fetch_array($result_desc,MYSQL_NUM); 
	
	if ( $i%2 == 0 ) 
		echo '<tr>';
		
	echo '<td colspan="50">'; 
	echo '<img src="../image/droite.gif">'; 
	echo '&nbsp;<a target="_blank" href="'.$page_visubdd.$ext.'?table='.$ligne_liste[0].'" class="Menu" name='.$ligne_liste[0].' >'.$ligne_liste[0].'</a><br>'; 
	echo "&nbsp;&nbsp;&nbsp;"; 
	echo '<font color="CCCCCC">'.$row[0].'</font><br><br></td>'; 
	
	$i++; 
		
	if ($i%2 == 0 )
		echo '</tr>';
} 

if ($i%2!=0 )
	echo '<td>-</td></tr>';

mysql_free_result($req_liste); 
mysql_free_result($result_desc); 
mysql_close(); 
?>
</table> 

Eléphant du PHP | 254 Messages

21 avr. 2006, 15:35

Bonjour,

je voudrais savoir comment je peux optimiser mon code suivant.
en recommencant tout + proprement :lol:

Invité
Invité n'ayant pas de compte PHPfrance

21 avr. 2006, 15:42

Bonjour,

je voudrais savoir comment je peux optimiser mon code suivant.
en recommencant tout + proprement :lol:
pas tres constructeur ta réponse :/

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 avr. 2006, 15:43

en recommencant tout + proprement :lol:
Super constructive la remarque...

Tu peux peut-être développer : qu'est-ce qui te gêne dans son code ?

perso, je ne trouve pas ça crade, au niveau code pleins de petits trucs sont respectés (séparation chaînes/variables, seconde paramètre du mysql_fetch_array...)

skyangel
Invité n'ayant pas de compte PHPfrance

21 avr. 2006, 15:46

Merci ryle


Pourquoi maintenant ton code est plus optimisé que le mien ???

Tu a toujours 3 if . ??
Par contre tu echo moins que moi


Merci encore

Invité
Invité n'ayant pas de compte PHPfrance

21 avr. 2006, 15:47

en recommencant tout + proprement :lol:
Super constructive la remarque...

Tu peux peut-être développer : qu'est-ce qui te gêne dans son code ?
Merci ;)

skyangel
Invité n'ayant pas de compte PHPfrance

21 avr. 2006, 15:53

Ryle !

A quoi sert ton dernier if. Il ne passe jamais par la !??

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 avr. 2006, 15:57

Merci ryle
Pourquoi maintenant ton code est plus optimisé que le mien ???
Il n'est pas spécialement plus optimisé, j'ai juste simplifié l'affichage de ton tableau, sans me poser de question pour savoir ce qu'il faisait :)

Résultat un code moins long, plus lisible et plus facile à modifier ou à maintenir :) (y a peut être encore un truc ou deux à corriger dans celui que je t'ai donné, tu verras en testant).

Maintenant au niveau performances faut rentrer plus dans le détail que je ne l'ai fait, mais ca veut dire également qu'il nous faut plus d'infos sur ce que tu attends :)

Invité
Invité n'ayant pas de compte PHPfrance

21 avr. 2006, 16:02


Maintenant au niveau performances faut rentrer plus dans le détail que je ne l'ai fait, mais ca veut dire également qu'il nous faut plus d'infos sur ce que tu attends :)
Ce que j'attends??

en fait ce que je ressort c'est une liste ded nom de table de ma bdd.
Ce que je ressort également , c'est une description des tables $row[0].

Donc j'affiche des liens qui pointe vers une nouvelle page qui elle affiche le contenu de la table et qu'on peut la modifier
Voila ce que j'attends et c que tu m'as donné me convient tres bien.

Ma question pourquoi c'est plus optimisé , c'est simplement de la curiosité

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

21 avr. 2006, 18:04

En virant les balises <font> (mais c'est de l'optimisation HTML). Et pour ma part, j'aurais plus séparé le traitement PHP du HTML...

Un peu comme tu fais à la fin de ton fichier <?php echo $mavar; ?> avec la variable remplie préalablement, plutôt que faire du echo '<a href'..';
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.