<html> <head> <title>PHP France</title> <meta name="Description" content="Trucs et astuces sur le PHP."> <meta name="Keywords" content="PHP,php,PHP3,PHP4,tutorial,cours,francais,aide,MySQL,mysql,france,exemples,exercice,documentation"> <!-- DEBUT DE HAUT --> <meta name="robots" CONTENT="index,follow"> <script language="JavaScript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} }  function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; }  function MM_findObj(n, d) { //v3.0 var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x; }  function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} }  function OuvrirFenetre(url,fenetre,detail) { window.open(url,fenetre,detail) }  var time = new Date(); ordval = (time.getTime());  //--> </script> <link rel="stylesheet" href="../style.css"> </head> <body bgcolor="#00608E" link="#A3B9CF" vlink="#A3B9CF"> <div align="center"> <table width="750" border="0" cellspacing="0" cellpadding="0"> <tr>  <td width="196" rowspan="2" valign="bottom"><img src="../images/logo4-1-b.gif" width="187" height="88"></td> <td width="554" align="center" valign="top"> <IFRAME height=60 width=468 Marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0  scrolling=no bordercolor="#000000" SRC="http://fl01.ct2.comclick.com/aff_frame.ct2?id_regie=1&num_editeur=94&num_site=2&num_emplacement=1"> <SCRIPT type="text/JavaScript" src="http://fl01.ct2.comclick.com/aff_js_src.ct2?id_regie=1&num_editeur=94&num_site=2&num_emplacement=1"> </SCRIPT> <NOSCRIPT> <A HREF="http://fl01.ct2.comclick.com/click_url.ct2?id_regie=1&num_editeur=94&num_site=2&num_emplacement=1" TARGET="_blank"> <IMG BORDER=0 SRC="http://fl01.ct2.comclick.com/aff_url.ct2?id_regie=1&num_editeur=94&num_site=2&num_emplacement=1"></A> </NOSCRIPT> </IFRAME> </td> </tr> <tr> <td width="554" valign="bottom"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>  <td align="right">  <font face="Verdana, Arial" size="1" color="#FF9933"><b>  <div id="overDiv" style="position:absolute; visibility:hide; z-index:1;"></div> <script language="JavaScript" src="../overlib.js"></script>             18 Avril 2003, bienvenue sur PHP<font color="#FFFFFF">france</font>.com..</span>.</b></font> </td> </tr> </table> </td> </tr> </table> <table width="750" border="0" cellspacing="0" cellpadding="0"> <tr>  <td width="319"><img src="../images/logo4-1-h.gif" width="288" height="62"></td> <td width="431">  <table width="100%" border="0" cellspacing="0" cellpadding="0" align="right"> <tr bgcolor="#89A6C2">  <td height="52" width="473" valign="middle" colspan="2" align="left">  <!-- DEBUT TABLEHAUT --> <table width="99%" border="0" cellspacing="0" cellpadding="0"> <tr>  <td width="288" height="51"> <table width="99%" border="0" cellspacing="5" cellpadding="0"> <tr>  <td width="30"><img src="../images/pictos/code.gif" width="30" height="40"></td> <td width="204"><font face="MS Sans Serif, Arial" size="1"><a href="../tips/index.php?catID=6" class="liennoir">Les expression rgulires.</a></font></td> </tr> </table> </td> <td width="175" align="right" background="../images/fond_newsletter.gif" height="51">  <form action="../ml/ml.php" method="post"> <input type="text" name="email" size="10" style="background=#D1DCE7; color=#00608E; font=bold;"> <input type="image" src="../images/okFF9933.gif" name="sub" align="absbottom" border="0"> <input type="hidden" name="a" value="abonnement">  </form> </td> </tr> </table> <!-- FIN TABLEHAUT --></td> </tr> </table> </td> </tr> </table> <table width="750" border="0" cellspacing="0" cellpadding="0"> <tr>  <td width="660"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr valign="bottom">  <td width="155"><img src="../images/logo4-2.gif" width="46" height="33"> <font face="Arial" color="#FFFFFF" size="1"><b> Version 1.40</b></font></td> <td width="505"> <table width="100%" border="0" cellspacing="0"> <tr>  <td width="80" align="center"><font size="1" face="MS Sans Serif, Arial"><b><a href="../" class="menu">Accueil</a></b></font></td> <td width="120" align="center"><font size="1" face="MS Sans Serif, Arial"><b><a href="http://fr2.php.net/manual/fr/" class="menu" target="_blank">Documentation</a></b></font></td> <td width="80" align="center"><font size="1" face="MS Sans Serif, Arial"><b><a href="../tutorials/" class="menu">Tutorials</a></b></font></td> <td width="65" align="center"><font size="1" face="MS Sans Serif, Arial"><b><a href="../chat/chat.htm" class="menu" target="_blank">Chat</a></b></font></td> <td width="80" align="center"><font size="1" face="MS Sans Serif, Arial"><b><a href="../forums/" class="menu">Forums</a></b></font></td> <td width="80" align="center"><font size="1" face="MS Sans Serif, Arial"><b><a href="../membres/" class="menu">Membres</a></b></font></td> </tr> </table> </td> </tr> </table> </td> <td height="15" width="75" valign="bottom">  <table width="100%" border="0" cellspacing="0" cellpadding="0" height="15"> <tr bgcolor="#FF9933">  <td><img src="../images/ptFF9933.gif" width="1" height="1"></td> </tr> </table> </td> <td width="15" height="15" valign="bottom">  <table width="100%" border="0" cellspacing="0" cellpadding="0" height="15"> <tr bgcolor="#FF9933">  <td><img src="../images/ptFF9933.gif" width="1" height="1"></td> </tr> </table> </td> </tr> <tr>  <td colspan="2" width="735"> <table width="735" border="0" cellspacing="0" cellpadding="0"> <tr>  <td height="5" colspan="4"><img src="../images/pt006498.gif" width="1" height="1"></td> </tr> <tr>  <td width="150" valign="top">  <div align="center"><br> <!-- DEBUT DU MENU --> <table width="150" border="0" cellspacing="0" cellpadding="0">   <tr valign="top">       <td><img src="../images/quicklunch/ql_haut.gif" width="150" height="9"><br>       <table width="150" border="0" cellspacing="0" cellpadding="0">         <tr>           <td><img src="../images/quicklunch/ql_gauche.gif" width="12" height="17"></td>           <td bgcolor="#80AECA"><a href="./" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','../images/quicklunch/ql_home_hover.gif',1)"><img src="../images/quicklunch/ql_home_on.gif" width="17" height="17" border="0" name="Image1" alt="Retour  l'accueil de la rubrique"></a></td>           <td bgcolor="#80AECA"><a href="/tips/index.php?catID=13&format_imprimable=1" target="_blank" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image2','','../images/quicklunch/ql_print_hover.gif',1)"><img src="../images/quicklunch/ql_print_on.gif" width="22" height="17" border="0" name="Image2" alt="Format imprimable"></a></td>           <td bgcolor="#80AECA"><a href="javascript:OuvrirFenetre('../reco.php?url=%2Ftips%2Findex.php%3FcatID%3D13','reco','width=420,height=450')" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','../images/quicklunch/ql_send_hover.gif',1)"><img src="../images/quicklunch/ql_send_on.gif" width="21" height="17" border="0" name="Image3" alt="Recommander &agrave; un ami"></a></td>           <td bgcolor="#80AECA"><img src="../images/quicklunch/ql_demo_off.gif" width="21" height="17" border="0" name="Image4"></td>           <td bgcolor="#80AECA"><img src="../images/quicklunch/ql_download_off.gif" width="21" height="17" border="0" name="Image5"></td>           <td bgcolor="#80AECA"><a href="../forums/" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image6','','../images/quicklunch/ql_chat_hover.gif',1)"><img src="../images/quicklunch/ql_chat_on.gif" width="20" height="17" border="0" name="Image6" alt="Discuter dans les forums"></a></td>           <td><img src="../images/quicklunch/ql_droit.gif" width="16" height="17"></td>         </tr>       </table>      <img src="../images/quicklunch/ql_bas.gif" width="150" height="9"></td>   </tr> </table><br> <table width="150" border="0" cellspacing="0" cellpadding="0"> <tr>  <td bgcolor="#FF9933" align="center" height="16"><font face="Tahoma, Arial" size="1" color="#FFFFFF"><b>MEMBRES</b></font></td> </tr> <tr valign="top">  <td> <font size="1" face="MS Sans Serif, Arial">      <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../login.php?path=./membres/index.php" class="menu">Identification</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../membres/inscription.php" class="menu">Inscription</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../membres/" class="menu">[Kesako]</a><br> <br> </font> </td> </tr> <tr>  <td bgcolor="#FF9933" align="center" height="16"><font face="Tahoma, Arial" size="1" color="#FFFFFF"><b>AIDE</b></font></td> </tr> <tr valign="top">  <td> <font size="1" face="MS Sans Serif, Arial"> <img src="/images/ptFF9933.gif" width="5" height="5">  <a href="http://www.php.net/manual/" class="menu" target="_blank">Manuel de rfrence</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../tutorials/" class="menu">Tutorials</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../tips/" class="menu">Trucs  et astuces</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../forums/" class="menu">Forums de discussion</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../irc/" class="menu">Chat IRC</a><br> <br> </font> </td> </tr> <tr>  <td bgcolor="#FF9933" align="center" height="16"><font face="Tahoma, Arial" size="1" color="#FFFFFF"><b>RESSOURCES</b></font></td> </tr> <tr valign="top">  <td> <font size="1" face="MS Sans Serif, Arial">  <!--<img src="/images/ptFF9933.gif" width="5" height="5">  <a href="/code/" class="menu">Portions de code</a><br>--> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../scripts/" class="menu">Scripts  complets</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../emploi/" class="menu">Emplois du PHP</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../livres/" class="menu">Les livres utiles</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../hebergement/" class="menu">H&eacute;bergement</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../liens/" class="menu">Liens</a><br> <br> </font> </td> </tr> <tr>  <td bgcolor="#FF9933" align="center" height="16"><font face="Tahoma, Arial" size="1" color="#FFFFFF"><b>PROJETS</b></font></td> </tr> <tr valign="top">  <td> <font size="1" face="MS Sans Serif, Arial"> <img src="/images/ptFF9933.gif" width="5" height="5">  <a href="../projets/mailing/" class="menu">Mailing list</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../projets/phpmysqlformgen/" class="menu">Php-MySql Form Generator</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../projets/" class="menu">[Kesako]</a><br> <br> </font> </td> </tr> <tr>  <td bgcolor="#FF9933" align="center" height="16"><font face="Tahoma, Arial" size="1" color="#FFFFFF"><b>A PROPOS</b></font></td> </tr> <tr valign="top">  <td> <font size="1" face="MS Sans Serif, Arial"> <img src="/images/ptFF9933.gif" width="5" height="5">  <a href="../equipe.php" class="menu">L'&eacute;quipe de PHPfrance</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../elePHPant.php" class="menu">elePHPant</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../sondages.php" class="menu">Sondages</a><br>       <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../newsletter.php" class="menu">Newsletter</a><br> <img src="/images/ptFF9933.gif" width="5" height="5"> <a href="../contact.php" class="menu">Contactez nous</a><br> <br> </font></td> </tr> <tr valign="top" align="center">  <td><br> 	<IFRAME height=60 width=90 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no bordercolor="#000000" SRC="http://fl01.ct2.comclick.com/aff_frame.ct2?id_regie=1&num_editeur=94&num_site=2&num_emplacement=2"> 	<SCRIPT type="text/JavaScript" src="http://fl01.ct2.comclick.com/aff_js_src.ct2?id_regie=1&num_editeur=94&num_site=2&num_emplacement=2"> 	</SCRIPT> 	<NOSCRIPT> 	<A HREF="http://fl01.ct2.comclick.com/click_url.ct2?id_regie=1&num_editeur=94&num_site=2&num_emplacement=2" TARGET="_blank"> 	<IMG BORDER=0 SRC="http://fl01.ct2.comclick.com/aff_url.ct2?id_regie=1&num_editeur=94&num_site=2&num_emplacement=2"></A> 	</NOSCRIPT> 	</IFRAME> 	<br> <!--<a href="http://www.hit-parade.com/hp.asp?site=p69978" target="_blank"><img src="http://logp.hit-parade.com/logohp1.gif?site=p69978" alt="Hit-Parade" width="77" height="15" border="0"></A>--> </td> </tr> </table> <!-- FIN DU MENU --></div> </td> <td width="5"><img src="" width="1" height="1"></td> <td width="575" bgcolor="#FFFFFF" valign="top">                                             <!-- FIN DE HAUT -->                  <table width="575" border="0" cellspacing="0" cellpadding="0">   <tr>      <td width="100%" valign="top" colspan="2">        <table width="100%" border="0" cellspacing="5" cellpadding="0">         <tr bgcolor="#FFFFFF">            <td><a href="../tips/index.php"><img src="../images/textes/trucs&astuces.gif" width="242" height="16" border="0" ></a></td>         </tr>         <tr bgcolor="#FFFFFF" valign="top">            <td height="8">              <p>&nbsp; </p>             </td>         </tr>         <tr bgcolor="#FFFFFF" valign="top">            <td><font face="Arial" size="2">Il y a 14 astuces.<br><br>      <table border="0" cellpadding="5" cellspacing="2" width="100%">       <tr bgcolor="#EEEEEE">  <td><font face="Arial" size="2"><b>bdd courante ds un script php</b><br>Propos&eacute; par <a href="mailto:perret.bertrand@wanadoo.fr">golem_13</a> le 03 Fvrier 2002<br><br>Lorsqu'on s'est connecte au serveur MySQL;il est possible de connaitre la bse de donn&eacute;e courante.<br /> <br /> On utilise pour cela la commande MySQL<br /> DATABASE()<br /> <br /> <br /> En clair on utilise la variable h&ocirc;te &quot;bddc&quot; dans le select qui contiendra la valeur retourn&eacute;e par DATABASE()<br /> On recupere cette valeur avec mysql_result<br /> <br /> $requete = &quot;select @bddc:=DATABASE() as dfdb_name&quot;;<br /> $db_name_res=mysql_query($requete);<br /> $db_name=mysql_result($db_name_res,0,&quot;dfdb_name&quot;);<br /> <br /> echo &quot;base de donn&eacute;es courante $db_name&lt;br&gt;&quot;;<br /> <br /> Si la bdd n'est pas celle sur laquelle on veut travailler , on la changera avec<br /> <br /> mysql_select_db().<br /> <br /> j'espere que cela pourra aider :0)<br /> <br /> <br /> </font></td></tr><tr bgcolor="#D0DCE8">  <td><font face="Arial" size="2"><b>Tueur de doublons</b><br>Propos&eacute; par <a href="mailto:daimonax@correcteurs.org">Daimonax</a> le 28 Septembre 2001<br><br>Script pour d&eacute;tecter des doublons dans une table, afin de les effacer ensuite.<br /> <br /> Exemple pour supprimer les doublons d'adresses email dans une table nomm&eacute;e &quot;inscrits&quot;.<br /> Sur une table de 3500 adresses, cela n'a m&ecirc;me pas pris une seconde de traitement chez OVH.<br /> <br /> 1. pr&eacute;paration du formulaire pour effacer les doublons<br /> <br /> &lt;?<br /> echo &quot;&lt;form action=&quot;tueurdedoublons.php&quot; method=&quot;post&quot;&gt;n&quot;;<br /> //Le traitement de ce script est en bas, en 2.<br /> <br /> <br /> //Un requ&ecirc;te SQL avec un &quot;order by&quot; sur un champ permettant une comparaison nette pour d&eacute;tecter le doublon. Ici l'adresse email.<br /> <br /> $select=&quot;SELECT id, email FROM inscrits order by email&quot;;<br /> $resultat=mysql_query($select);<br /> <br /> //Pour incr&eacute;menter les [] du formulaire<br /> $i=&quot;1&quot;;<br /> //Pour test final<br /> $j=&quot;0&quot;;<br /> <br /> echo &quot;&lt;table&gt;&quot;;<br /> <br /> while($ligne=mysql_fetch_array($resultat))<br /> {<br /> $email=$ligne[&quot;email&quot;];<br /> $id=$ligne[&quot;id&quot;];<br /> <br /> //Afficher les doublons<br />   if($email==&quot;$emailb&quot;)<br />   {<br /> <br /> // Nota. A la premi&egrave;re ligne, $emailb est vide, il n'y pas de valeur pr&eacute;c&eacute;dente &agrave; comparer. Cette valeur est d&eacute;finie &agrave; la fin de la proc&eacute;dure de la ligne, active donc &agrave; partir de la seconde ligne de la boucle.<br /> <br /> //Valeur pr&eacute;c&eacute;dente conserv&eacute;e avec $emailb<br />   echo &quot;&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;$emailb - ID : $idb&lt;/td&gt;&lt;tr&gt;n&quot;;<br /> //Valeur doublon qui suit, $email de la ligne en cours<br />   echo &quot;&lt;tr&gt;&lt;input type=&quot;hidden&quot; name=&quot;id[$i]&quot; value=&quot;$id&quot;&gt;&quot;;<br />   echo &quot;&lt;td&gt;$email - ID:  $ins_id&lt;/td&gt;n&quot;;<br /> <br /> //Selectionner la valeur &agrave; effacer<br /> $selection=&quot; checked&quot;;<br /> echo&quot;&lt;td align=&quot;center&quot;&gt;&lt;input type=&quot;checkbox&quot; name=&quot;effacement[$i]&quot; value=&quot;oui&quot;$selection&gt;&lt;hr&gt;&lt;/td&gt;&lt;tr&gt;n&quot;;<br /> <br /> //Pour incr&eacute;menter le formulaire<br /> $i++;<br /> //Pour test final<br /> $j++;<br /> <br /> //Fin de if<br /> }<br /> <br /> //stocker la derni&egrave;re valeur de $email dans $emailb pour la comparer avec la suivante.<br /> $emailb=&quot;$email&quot;;<br /> $idb=&quot;$id&quot;;<br /> <br /> //Fin de boucle<br /> }<br /> <br /> echo&quot;&lt;/table&gt;&quot;;<br /> //Test final<br /> if($j==&quot;0&quot;)<br /> {<br /> echo &quot;Aucun doublon d&amp;eacute;tect&amp;eacute; pour cette liste&lt;br&gt;&quot;;<br /> }<br /> //Respect des accords du pluriel dans les messages  <br /> else<br /> {<br />    if($j==&quot;1&quot;)<br />       {<br />       $doublon=&quot;doublon&quot;;<br />       }<br />       else<br />       {<br />       $doublon=&quot;doublons&quot;;<br />       }<br /> echo &quot;&amp;nbsp;&amp;nbsp;Il y a $j $doublon&amp;nbsp;&amp;nbsp;&quot;;<br /> echo &quot;&lt;input type=&quot;submit&quot; value=&quot;Effacer les doublons s&amp;eacute;lectionn&amp;eacute;s&quot;&gt;&lt;br&gt;&quot;;<br /> }<br /> echo&quot;&lt;/form&gt;&quot;;<br /> ?&gt;<br /> <br /> 2. Traitement du script, apr&egrave;s envoi, &quot;tueurdedoublons.php&quot;<br /> <br /> //<br /> &lt;?<br /> $but=count($email);<br /> <br /> for($i =1; $i&lt;=$but; $i++)<br /> {<br /> //Si case coch&eacute;e &quot;effacement&quot; pour confirmer la suppression<br />   if($effacement[$i]==&quot;oui&quot;)<br />    {<br />    $modif=&quot;DELETE FROM inscrits  where id='$id[$i]'&quot;;<br />    $entre=mysql_query($modif);<br />    if($entre) <br />       {<br />       echo&quot;Doublon de $email[$i] effac&amp;eacute;&lt;br&gt;&quot;;<br />       }<br />    }<br /> }<br /> ?&gt;<br /> <br /> </font></td></tr><tr bgcolor="#EEEEEE">  <td><font face="Arial" size="2"><b>Ajouter des virgule au r&eacute;sultat renvoyer par MySQL</b><br>Propos&eacute; par <a href="mailto:cnetcom2000@yahoo.com">xt2fs</a> le 30 Juin 2001<br><br>Il est tr&egrave;s simple d'ajouter des virgules <br /> aux r&eacute;sultats de MySQL pour avoir un nombre<br /> un peu plus lisible. <br /> <br /> Ex : 4000000.00 par 4,000,000.00<br /> <br /> Remplacer $res par le r&eacute;sultat de votre<br /> requ&ecirc;te qui contient le nombre.<br /> <br /> $rchar = strrev(&quot;$res&quot;);<br /> $rcharc = str_replace(&quot;000&quot;, &quot;000,&quot;, $rchar);<br /> $charc = strrev(&quot;$rcharc&quot;);<br /> print ($charc);</font></td></tr><tr bgcolor="#D0DCE8">  <td><font face="Arial" size="2"><b>Affichage page par page</b><br>Propos&eacute; par <a href="mailto:kchtai@hotmail.com">karam</a> le 13 Avril 2001<br><br><br /> $nbRecParPage contient le nombre de ligne par page<br /> <br /> -------------------------------------------------------------------<br /> &lt;?<br /> error_reporting(1) ;<br /> <br /> $tab=&quot;la_table&quot;;<br /> $nbRecParPage = 10:<br /> mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;pass&quot;) ;<br /> <br /> $Query = &quot;select * from  $tab ORDER by ref DESC&quot; ;<br /> <br /> <br /> $R = mysql_db_query(&quot;$base&quot;,&quot;$Query&quot;) ;<br /> $Count = mysql_num_rows($R) ;<br /> $Reste = $Count % $nbRecParPage ;<br /> $Pages = $Count / $nbRecParPage ;<br /> <br /> <br /> if ( ! isset($ID_Page) )<br /> {<br /> 	$ID_Page = 1 ;<br /> }<br /> <br /> <br /> 	$Counter = 0 ;<br /> 	<br /> 	if ( $ID_Page == 1 )<br /> 	{<br /> <br /> 		while ( ( $Tuple = mysql_fetch_array($R) ) and ( $Counter++ &lt; 10 ) )<br />  		{<br /> 	<br /> ?&gt;<br /> <br /> <br /> resulta de la premiere page &lt;? echo $Tuple[1] ?&gt;<br /> <br /> <br /> <br /> &lt;?  <br /> }<br /> <br /> 	}<br /> 	else<br /> 	{<br /> <br /> 		for ( $i = 0 ; $i &lt; ( ( $ID_Page-1 ) * 10 ) ; $i++ )<br /> 		{<br /> 			$Tuple = mysql_fetch_array($R) ;<br /> 		}<br /> <br /> 		while ( ( $Tuple = mysql_fetch_array($R) ) and ( $Counter++ &lt; 10 ) )<br />  		{<br /> ?&gt;<br /> <br /> <br /> resulta de la 2 eme page et ts les autres pages... &lt;? echo $Tuple[1] ?&gt;<br /> <br /> <br /> <br /> &lt;? }}<br /> <br /> ?&gt;&lt;table&gt;&lt;tr&gt;&lt;td width=&quot;100%&quot;&gt;&lt;p ALIGN=&quot;center&quot;&gt;&lt;font face=&quot;verdana&quot; size=&quot;2&quot; color=&quot;ffffff&quot;&gt;&lt;?<br /> <br /> //affichage des numerotation + precedent et suivant<br /> <br /> if ( $ID_Page &gt; 1 )<br /> {<br /> 	$ID_Prec = $ID_Page - 1 ;<br /> 	$prec = $PHP_SELF.&quot;?ID_Page=&quot;.$ID_Prec.&quot;&amp;tab=&quot;.$tab ;<br /> 	echo &quot;&lt;a href=&quot;$prec&quot;&gt;Pr&amp;eacute;c&amp;eacute;dent&lt;/a&gt; &quot; ;<br /> }<br /> <br /> if ( $Reste != 0 )<br /> {<br /> 	for ( $i=1 ; $i &lt;= $Pages+1 ; $i++ )<br /> 	{<br /> 		if ( $ID_Page == $i )<br /> 		{<br /> 			echo &quot; &quot;.$i.&quot; &quot; ;		<br /> 		}<br /> 		else<br /> 		{<br /> 			$PAGE = $PHP_SELF.&quot;?ID_Page=&quot;.$i.&quot;&amp;tab=&quot;.$tab ;<br /> 			echo &quot; &lt;a href=&quot;$PAGE&quot;&gt;&quot;.$i.&quot;&lt;/a&gt; &quot; ;		<br /> 		}<br /> 	}<br /> }<br /> else<br /> {<br /> 	for ( $i=1 ; $i &lt;= $Pages ; $i++ )<br /> 	{<br /> 		if ( $ID_Page == $i )<br /> 		{<br /> 			echo &quot; &quot;.$i.&quot; &quot; ;		<br /> 		}<br /> 		else<br /> 		{<br /> 			$PAGE = $PHP_SELF.&quot;?ID_Page=&quot;.$i.&quot;&amp;tab=&quot;.$tab ;<br /> 			echo &quot; &lt;a href=&quot;$PAGE&quot;&gt;&quot;.$i.&quot;&lt;/a&gt; &quot; ;		<br /> 		}<br /> 	}<br /> }<br /> <br /> if ( $ID_Page &lt; $Pages )<br /> {<br /> 	$ID_Suiv = $ID_Page + 1 ;<br /> 	$suiv = $PHP_SELF.&quot;?ID_Page=&quot;.$ID_Suiv.&quot;&amp;tab=&quot;.$tab ;<br /> 	echo &quot; &lt;a href=&quot;$suiv&quot;&gt;Suivant&lt;/a&gt; &quot; ;<br /> }<br /> <br /> <br /> echo &quot;&lt;/font&gt;&lt;/pre&gt;&lt;BR&gt;&lt;BR&gt;&lt;/center&gt;&quot; ;<br />  <br /> ?&gt;<br /> &lt;/font&gt;<br /> &lt;/td&gt;<br /> &lt;/tr&gt;<br /> &lt;/table&gt;<br /> <br /> -------------------------------------------------------------------<br /> <br />  si vous avez des variables qui entre bah ajouter a cot&eacute; de : .&quot;&amp;tab=&quot;.$tab -&gt; .&quot;&amp;variable=&quot;.$variable</font></td></tr><tr bgcolor="#EEEEEE">  <td><font face="Arial" size="2"><b>Utilisation du like dans une requ&ecirc;te</b><br>Propos&eacute; par <a href="mailto:olecorre@noos.fr">cobaye</a> le 30 Mars 2001<br><br>Dans beaucoup d'exemple ou de code, je vois pratiquement que l'utilisation de like &quot;%$motcle%&quot; pour effectuer une recherche. Pour une petit quantit&eacute; de donn&eacute;e ce n'est pas g&eacute;nant mais lors que le volume de donn&eacute;es devient important, l'ex&eacute;cution de la requ&ecirc;te sera tr&egrave;s ralenti.<br /> Si la recherche peut se faire une liste de th&egrave;me (par exemple 20 th&egrave;me) je pr&eacute;conise lutilisation dune liste d&eacute;roulante dans le formulaire de recherche pour avoir un = dans la chaine SQL.<br /> Si le = n'est pas possible par exemple recherche un titre d'un bouquin &quot;Le ch&acirc;teau de ma m&egrave;re&quot; en saisissant comme mot cl&eacute; &laquo; Ch&acirc;teau &raquo;. je pr&eacute;conie de cr&eacute;er un table composer de trois colonne suppl&eacute;mentaire et de d&eacute;compos&eacute; le titre comme suit :<br /> Le ch&acirc;teau de ma m&egrave;re | Le ch&acirc;teau de ma m&egrave;re | 1<br /> Ch&acirc;teau de ma m&egrave;re| Le ch&acirc;teau de ma m&egrave;re | 2<br /> De ma m&egrave;re | Le ch&acirc;teau de ma m&egrave;re | 3<br /> Ma m&egrave;re | Le ch&acirc;teau de ma m&egrave;re | 4<br /> M&egrave;re | Le ch&acirc;teau de ma m&egrave;re | 5 <br /> Etc<br /> Le nombre de ligne sera certe plus important mais apr&egrave;s avoir tester diff&eacute;rent mode de recherche, nous en avons conclu quil faut mieux faire un like &laquo; $motcle% &raquo; sur 10000 ligne quun like &laquo; %$motcle% &raquo; sur 1000 lignes.<br /> Cette m&eacute;thode peut parfois &ecirc;tre difficile et complexe &agrave; mettre mais le r&eacute;sultat final peut aller du simple au double en terme de temps.<br /> </font></td></tr><tr bgcolor="#D0DCE8">  <td><font face="Arial" size="2"><b>Cr&eacute;ation de menus de navigation &agrave; partir d'une base de donn&eacute;es</b><br>Propos&eacute; par Bibelec le 28 Fvrier 2001<br><br>Le pr&eacute;sent document a pour but de montrer comment g&eacute;n&eacute;rer automatiquement une arborescence &agrave; partir d'une base de donn&eacute;es. <br /> <br /> Ce code est utilis&eacute; par le site http://www.bibelec.com, site de r&eacute;f&eacute;rence en sciences humaines.<br /> <br /> 1. Partie base de donn&eacute;es<br /> <br /> Cr&eacute;ation de la table &quot;Categories&quot; <br /> <br /> CREATE TABLE Categories ( <br />    NumCat int(11) DEFAULT '0' NOT NULL auto_increment, <br />    NomCat char(255) NOT NULL, <br />    NumCatMere int(11) DEFAULT '0' NOT NULL, <br />    PRIMARY KEY (NumCat), <br /> ); <br /> <br /> Insertion des valeurs dans les champs <br /> <br /> INSERT INTO Categories VALUES( '1', 'Histoire', '0'); <br /> INSERT INTO Categories VALUES( '2', 'Droit', '0'); <br /> INSERT INTO Categories VALUES( '3', 'Langues', '0'); <br /> INSERT INTO Categories VALUES( '4', 'Antiquit&eacute;', '1'); <br /> INSERT INTO Categories VALUES( '5', 'Moyen-Age', '1'); <br /> INSERT INTO Categories VALUES( '6', 'Moderne', '1'); <br /> INSERT INTO Categories VALUES( '7', 'Gr&egrave;ce Antique', '4'); <br /> <br /> <br /> 2. Partie programmation<br /> <br /> 2.1. Cette fonction interroge la base de donn&eacute;e &agrave; partir d'un num&eacute;ro de cat&eacute;gorie ($id) et retourne le num&eacute;ro de sa cat&eacute;gorie m&egrave;re. <br /> <br /> function getNumCatMere($id) { <br />     if (!empty($id)) { <br />         $s = &quot;SELECT NumCatMere FROM Categories WHERE NumCat = $id&quot;; <br />         $r = mysql_query($s) or die (&quot;Invalid query&quot;); <br />         $t = mysql_fetch_array($r); <br />         return $t[0]; <br />     } <br /> } <br />  <br /> <br /> <br /> 2.2. Cette fonction retourne un tableau &agrave; partir d'un num&eacute;ro de cat&eacute;gorie en faisant appel &agrave; la fonction &quot;getNumCatMere&quot; et en &quot;stockant&quot; le r&eacute;sultat dans une pile. Tant que la valeur $id est diff&eacute;rente de 0, cette fonction refait appel &agrave; elle-m&ecirc;me (r&eacute;cursion) et ajoute une valeur au tableau $tab. Pour stocker des valeurs dans $tab, on utilise une variable globale que l'on r&eacute;initialise chaque fois que la fonction n'est pas appel&eacute;e par elle-m&ecirc;me. Dans cette hypoth&egrave;se, la variable $reset est &eacute;gale &agrave; 1. <br /> <br /> function getPath($id,$reset) { <br /> global $tab; <br /> $Parent = getNumCatMere($id); <br />     if($reset==0) {  // ON REMET A ZERO LA VALEUR DE $tab <br />         unset ($tab); <br />     } <br />     if (!empty($Parent)) { <br />         while($id != 0) { <br />             $s = &quot;SELECT NomCat FROM Categories WHERE NumCat = $id&quot;; <br />             $r = mysql_query($s); <br />             $t = mysql_fetch_array($r); <br />             $tab[] = array(&quot;$t[0]&quot;, &quot;$id&quot; ); <br />             return getPath($Parent,1); <br />         } <br />     } <br /> return $tab; // retourne le chemin sous forme de tableau <br /> } <br />  <br /> <br /> <br /> 2.3. On r&eacute;cup&egrave;re les valeurs obtenues par la fonction &quot;getPath&quot; (de type Array) qu'on retourne sous la forme d'une cha&icirc;ne de caract&egrave;res. L'ordre des &eacute;l&eacute;ments du tableau est invers&eacute; pour afficher en premier lieu la cat&eacute;gorie racine. <br /> <br /> function BuildPathText($id) { <br /> $Mytab = getPath($id,0); <br /> $c = count($Mytab) - 1; <br />     for ($i=$c; $i&gt;=0; $i--) { <br />         list($NomCat, $NumCat) = $Mytab[$i]; <br />         if($i!=0) { <br />         echo &quot;&lt;a href='lien_vers_la_categorie.php?id=$NumCat'&gt;$NomCat&lt;/a&gt; &amp;gt; &quot;; <br />         } <br />         else { <br />             echo &quot;$NomCat&quot;; <br />         } <br />     } <br /> }<br /> <br /> Exemple <br /> <br /> On souhaite afficher l'arborescence et g&eacute;n&eacute;rer un menu de navigation &agrave; partir de la cat&eacute;gorie &quot;Gr&egrave;ce Antique&quot; dont le num&eacute;ro d'identification est &quot;7&quot;. <br /> <br /> echo BuildPathText(7); <br /> <br /> donnera : <br /> <br /> Histoire &gt; Antiquit&eacute; &gt; Gr&egrave;ce Antique <br /> <br /> David H&eacute;mery<br /> www.bibelec.com<br /> <br /> </font></td></tr><tr bgcolor="#EEEEEE">  <td><font face="Arial" size="2"><b>Cl&eacute;e etrang&egrave;re</b><br>Propos&eacute; par <a href="mailto:douglas_six@yahoo.fr">Rastapaye</a> le 07 Aot 2000<br><br>Il est possible avec MySQL de sp&eacute;cifier une cl&eacute;e &eacute;trang&egrave;re. Comme ceci :<br /> <br /> CREATE TABLE personnes (<br />     id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, <br />     nom CHAR(60) NOT NULL,<br />     PRIMARY KEY (id)<br /> );<br /> <br /> CREATE TABLE habits (<br />     id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,<br />     style ENUM('t-shirt', 'polo', 'robes') NOT NULL,<br />     couleur ENUM('rouge', 'bleu', 'orange', 'blanc', 'moir') NOT NULL,<br />     proprietaire SMALLINT UNSIGNED NOT NULL REFERENCES personnes,<br />     PRIMARY KEY (id)<br /> );<br /> <br /> Ce qui pr&eacute;cise que la table des habits poss&egrave;de un champs avec faisant r&eacute;f&eacute;rence &agrave; la table des personnes.<br /> <br /> Ainsi les requ&egrave;tes suivantes fonctionnent :<br /> <br /> INSERT INTO personnes VALUES (NULL, 'Antonio Paz');<br /> <br /> INSERT INTO habits VALUES<br /> (NULL, 'polo', 'bleu', LAST_INSERT_ID()),<br /> (NULL, 'robe', 'blanc', LAST_INSERT_ID()),<br /> (NULL, 't-shirt', 'bleu', LAST_INSERT_ID());<br /> <br /> INSERT INTO personnes VALUES (NULL, 'Lilliana Angelovska');<br /> <br /> INSERT INTO habits VALUES<br /> (NULL, 'robe', 'orange', LAST_INSERT_ID()),<br /> (NULL, 'polo', 'rouge', LAST_INSERT_ID()),<br /> (NULL, 'robe', 'bleu', LAST_INSERT_ID()),<br /> (NULL, 't-shirt', 'blanc', LAST_INSERT_ID());<br /> <br /> Douglas.<br /> </font></td></tr><tr bgcolor="#D0DCE8">  <td><font face="Arial" size="2"><b>Table temporaire</b><br>Propos&eacute; par <a href="mailto:douglas_six@yahoo.fr">Rastapaye</a> le 05 Aot 2000<br><br>Il est possible avec MySQL de cr&eacute;er des tables temporaire, autrement appell&eacute;es 'View' en SQL.<br /> <br /> Par exemple pour selectionner des &eacute;l&eacute;ments de deux tables diff&eacute;rentes :<br /> <br /> CREATE TEMPORARY TABLE tmp<br /> SELECT idcategorie FROM categorie WHERE nom='principale';<br /> SELECT nomelement FROM element, tmp WHERE element.idcategorie=tmp.idcategorie;<br /> DROP TABLE tmp;</font></td></tr><tr bgcolor="#EEEEEE">  <td><font face="Arial" size="2"><b>Ne pas effacer...</b><br>Propos&eacute; par <a href="mailto:agh@ifrance.com">Alexis</a> le 04 Aot 2000<br><br>Lorsque vous installez MySQL, ne supprimez surtout pas la base de donn&eacute;e nom&eacute;e 'mysql'. Sinon, MySQL ne sera plus capable de d&eacute;marrer...<br /> Vous pouvez par contre supprimer la base de donn&eacute;e nom&eacute;e 'test'.</font></td></tr><tr bgcolor="#D0DCE8">  <td><font face="Arial" size="2"><b>Reindex pour Mysql en php</b><br>Propos&eacute; par <a href="mailto:antoine@1000emplois.com">Antoine</a> le 12 Juin 2000<br><br>Je vous offre mon script<br /> laissez juste mes coordonn&eacute;es.<br /> <br /> Mysql &agrave; un gros defaut : il ne vous previent pas quand un index devient d&eacute;f&eacute;ctueux, du coup les performances s'effondrent.<br /> <br /> Voici un sript &agrave; que vous pouvez lancer regulierement.<br /> <br /> -------------------------<br /> &lt;?<br /> //<br /> // Scritp offert a tous le programmeurs PHP / Mysql<br /> // par : Antoine Sidelsky<br /> // http://www.autotraffic.net<br /> // Augmentez Automatiquement votre Trafic Visiteurs<br /> // Autotraffic vous offre toujours plus de pub<br /> //<br /> <br /> //<br /> // Conditions d'utilisations : Laisser mes coordonn&eacute;es<br /> //<br /> <br /> <br /> <br /> $userscript	=getmyuid();<br /> <br /> mysql_connect($host,$user,$password);<br /> mysql_select_db($db);<br /> <br /> $result = mysql_listtables($db);<br /> $i = 0;<br />    <br /> print &quot;&lt;b&gt;$db&lt;/b&gt; RE INDEXER&lt;br&gt;&quot;;<br /> print &quot;UTILISATEUR DU SCRIPT : &quot;.$userscript.&quot;&lt;BR&gt;&quot;;<br /> <br /> while ($i &lt; mysql_num_rows ($result)) {<br />     $tb_names[$i] = mysql_tablename($result, $i);<br />     $sql    =&quot;select count(*) from &quot;.$tb_names[$i];<br />     $mq     =mysql_query($sql);<br />     $nb2    =mysql_result($mq,0);<br />     <br />     <br />     print &quot;&lt;b&gt;&quot;.$tb_names[$i].&quot; $nb2 Eng&lt;/b&gt;&lt;br&gt;&quot;;<br />     $sql    =&quot;show index from &quot;.$tb_names[$i];<br />     $mq     =mysql_query($sql);<br />     <br />     while ($ind=mysql_fetch_object ($mq)) {    <br />         if ($ind-&gt;Key_name==&quot;PRIMARY&quot;):<br />             $sql    =&quot;ALTER TABLE &quot;.$tb_names[$i].&quot; DROP PRIMARY KEY&quot;;<br />             $mq1    =mysql_query($sql);<br />             $sql    =&quot;ALTER TABLE &quot;.$tb_names[$i].&quot; ADD  UNIQUE ($ind-&gt;Column_name)&quot;;<br />             $mq2    =mysql_query($sql);<br />             else:<br />             $sql    =&quot;ALTER TABLE &quot;.$tb_names[$i].&quot; DROP INDEX $ind-&gt;Key_name&quot;;<br />             $mq1    =mysql_query($sql);<br />             $sql    =&quot;ALTER TABLE &quot;.$tb_names[$i].&quot; ADD  INDEX ($ind-&gt;Column_name)&quot;;<br />             $mq2    =mysql_query($sql);            <br />        endif;<br />       // print &quot;$sql&lt;br&gt;&quot;;<br />        print &quot;$ind-&gt;Key_name,$ind-&gt;Column_name,$ind-&gt;Non_unique : $mq1/$mq2&lt;br&gt;&quot;;<br /> <br />     };<br />     $i++;<br />     print &quot;&lt;br&gt;&quot;;<br /> };<br /> ?&gt;<br /> </font></td></tr><tr bgcolor="#EEEEEE">  <td><font face="Arial" size="2"><b>Moteur de recherche en arborescence</b><br>Propos&eacute; par Fab. le 09 Juin 2000<br><br>Il s'agit de proposer la lecture d'une base de donn&eacute;es de ressources sous la forme d'un explorateur arborescent.<br /> <br /> Quand un groupe de sujets est s&eacute;lectionn&eacute;, l'arbre se d&eacute;ploie.<br /> <br /> Quand un sujet est s&eacute;lectionn&eacute;, un fichier associ&eacute; contenant du HTML pr&eacute;format&eacute; est charg&eacute; dans un template, d'o&ugrave; l'illusion d'atterrir sur une nouvelle page pr&eacute;sentant le sujet...<br /> <br /> D&eacute;monstration ?<br /> http://tropicalm.free.fr/pub/resource/demo<br /> <br /> Actuellement, il faut m'&eacute;crire &agrave; tropicalm@free.fr pour me demander le package du projet (.zip ou .tar.gz), mais d'ici la fin du mois, le projet sera en download libre au m&ecirc;me URL.</font></td></tr><tr bgcolor="#D0DCE8">  <td><font face="Arial" size="2"><b>id d'un insert</b><br>Propos&eacute; par <a href="mailto:moosh@phpfrance.com">Moosh</a> le 08 Juin 2000<br><br>Si comme dans certain de mes formulaires  vous voulez utilisercelui de la modif pour un ajout d'enregistrement.<br /> <br /> Il suffit d'&eacute;chainer&lt;UL&gt;<br /> &lt;LI&gt;INSERT <br /> &lt;LI&gt;afficher le formulaire (rempli ev&eacute;ntuellement par un SELECT)<br /> &lt;LI&gt;Update where (utilisez l'index)<br /> &lt;/UL&gt;<br /> pour conna&icirc;tre la valeur de l'index si il est en auto_increment il existe la commande mysql_insert_id [ http://www.nexen.net/fr/aide/PHP/francais/function.mysql-insert-id.html ]<br /> J'utilise ce proc&eacute;d&eacute; dans le projet ALBUM PHOTO<br /> </font></td></tr><tr bgcolor="#EEEEEE">  <td><font face="Arial" size="2"><b>Les erreurs</b><br>Propos&eacute; par nobody le 16 Mars 2000<br><br>Il est souvent bien utile d'intercepter les erreurs.<br /> Personnellement j'utilise une fonction qui m'envoie un mail lorsque une erreur survient.<br /> <br /> Voici un exemple :<br /> <br /> &lt;?<br /> <br /> function erreur_mysql($texte,$sql=''){<br />   global $admin_mail,$nom_script;  <br />   $num = mysql_errno();<br />   $msg = mysql_error();<br />   mail(<br />    $admin_mail,<br />    &quot;Erreur dans &quot;.$nom_script,<br />    &quot;[$text]\n num : $num\n msg : $msg \n sql : $sql&quot;<br />   );<br /> }<br /> <br /> $sql = &quot;select mail from table&quot;;<br /> $r = mysql_query($sql) or die(erreur_mysql(&quot;Erreur select mail&quot;,$sql));<br /> <br /> ?&gt;<br /> </font></td></tr><tr bgcolor="#D0DCE8">  <td><font face="Arial" size="2"><b>mysql_fetch_*</b><br>Propos&eacute; par nobody le 01 Fvrier 2000<br><br>mysql_fetch_array() n'est gu&egrave;re plus lent que mysql_fetch_row(). Il est donc inutile de s'en priver !</font></td></tr>         </table>       </font>            <font face="Arial" size="2"><br><a href="index.php">Accueil</a> - <a href="tips.php?catID=13">Proposer une astuce!</a> - <a href="index.php?a=nouveautes">Nouveaut&eacute;s</a> - <a href="vostips.php">Vos tips</a></font>             </td>           </tr>         </table>       </td>     </tr>   </table>      <!-- DEBUT DU BAS -->   </td> <td width="5"><img src="../images/ptFF3399.gif" width="1" height="1"></td> </tr> <tr>  <td width="735" height="5" colspan="4"><img src="../images/pt006498.gif" width="1" height="1"></td> </tr> </table> </td> <td width="15" bgcolor="#FF9933"><img src="../images/ptFF9933.gif" width="1" height="1"></td> </tr> <tr>  <td width="660" height="15" valign="middle">  <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr valign="middle">  <td width="155"><img src="../images/pt006498.gif" width="1" height="1"></td> <td width="505"><font face="Verdana, Arial" size="1" color="#89A6C2"><b><span class="fondbfond">Copyright  &copy; </span></b><span class="fondbfond"><a href="http://www.actoo.com/actoo/contact.php" class="fondbfond" target="_blank">[<b>ACTOO sarl</b>]</a><b> 1999-2003&nbsp; - &nbsp;<a href="../contact.php" class="fondbfond">Contact</a>&nbsp;  -&nbsp; <a href="../donnees_personnelles.php" class="fondbfond"><!--www.phpfrance.com-->Donn&eacute;es personnelles</a></b></span></font></td> </tr> </table> </td> <td height="15" width="75" bgcolor="#FF9933"><img src="../images/ptFF3399.gif" width="1" height="1"></td> <td width="15" bgcolor="#FF9933" height="15"><img src="../images/ptFF3399.gif" width="1" height="1"></td> </tr> </table>  </div>   </body> </html> <!-- FIN DU BAS -->  
