<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Miximum &#187; MySQL</title>
	<atom:link href="http://www.miximum.fr/tag/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.miximum.fr</link>
	<description>Le blog d&#039;un ingénieur web freelance</description>
	<lastBuildDate>Wed, 16 Nov 2011 16:25:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Quel moteur de recherche pour votre site ?</title>
		<link>http://www.miximum.fr/methodes-et-outils/322-quel-moteur-de-recherche-pour-votre-site</link>
		<comments>http://www.miximum.fr/methodes-et-outils/322-quel-moteur-de-recherche-pour-votre-site#comments</comments>
		<pubDate>Fri, 28 Aug 2009 14:36:07 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Méthodes et outils]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[lucène]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=322</guid>
		<description><![CDATA[photo credit&#160;: Kaptain Kobold Il est loin le temps ou les internautes, en arrivant sur un site, parcouraient patiemment les divers menu jusqu&#8217;&#224; trouver le contenu qui les int&#233;resse. Qui proc&#232;de encore comme &#231;a aujourd&#8217;hui&#160;? On s&#8217;imagine mal naviguer dans une arborescence pour trouver un article sur des sites comme wikipedia ou ebay. L&#8217;usage, de [...]]]></description>
			<content:encoded><![CDATA[<div class="postimg alignleft"><a href="http://www.flickr.com/photos/95492938@N00/83359336/" title="It's Murder, Watson!" target="_blank"><img src="http://farm1.static.flickr.com/42/83359336_7170ce67a1_m.jpg" alt="It's Murder, Watson!" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc-sa/2.0/" title="Attribution-NonCommercial-ShareAlike License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/95492938@N00/83359336/" title="Kaptain Kobold" target="_blank">Kaptain Kobold</a></small></div>
<p>Il est loin le temps ou les internautes, en arrivant sur un site, parcouraient patiemment les divers menu jusqu&#8217;&agrave; trouver le contenu qui les int&eacute;resse. Qui proc&egrave;de encore comme &ccedil;a aujourd&#8217;hui<span class="fine">&nbsp;</span>? On s&#8217;imagine mal naviguer dans une arborescence pour trouver un article sur des sites comme wikipedia ou ebay. L&#8217;usage, de nos jours, est &agrave; la rapidit&eacute;, que dis-je, &agrave; l&#8217;imm&eacute;diatet&eacute;&nbsp;: une petite recherche et hop<span class="fine">&nbsp;</span>! Le contenu d&eacute;sir&eacute; nous tombe tout cru dans le bec.</p>
<p>D&#8217;o&ugrave; l&#8217;importance cruciale du moteur du recherche, sans lequel un site digne de ce nom ne peut se pr&eacute;tendre utilisable. Et qui dit moteur de recherche, dit prise de t&ecirc;te pour les SI, car les solutions sont nombreuses et h&eacute;t&eacute;rog&egrave;nes. Je vous propose donc un petit tour d&#8217;horizon de quelques technologies destin&eacute;es &agrave; int&eacute;grer des moteurs de recherches sur vos sites.</p>
<h2>Google Search</h2>
<p>Bon, commen&ccedil;ons par la solution b&ecirc;te et m&eacute;chante. Tout le monde connait Google<span class="fine">&nbsp;</span>? Et bien Google fournit la possibilit&eacute; d&#8217;int&eacute;grer son fameux moteur de recherche sur (presque) n&#8217;importe quel site. On copie-colle un petit bout de code sur sa page, et hop<span class="fine">&nbsp;</span>!</p>
<p>L&#8217;avantage<span class="fine">&nbsp;</span>? C&#8217;est la solution la plus simple. Vous n&#8217;avez &agrave; vous occuper de rien. Les inconv&eacute;niants<span class="fine">&nbsp;</span>? Ils sont nombreux<span class="fine">&nbsp;</span>! Vous n&#8217;avez aucun contr&ocirc;le sur les retours, une emprise limit&eacute;e sur la mise en page des r&eacute;sultats, et puis, vous n&#8217;avez bien entendu aucun moyen de contr&ocirc;ler l&#8217;indexation du site. &Agrave; r&eacute;server aux &laquo;&nbsp;sites persos&nbsp;&raquo; des webmasters fain&eacute;ants ou press&eacute;s.</p>
<h2>Recherche full text MySQL</h2>
<p>Retour aux fondamentaux. La plupart des SGBD majeurs fournissent des <a href="http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html">index pour la recherche full text</a>, c&#8217;est &agrave; dire qu&#8217;il est possible, via une requ&ecirc;te sp&eacute;cifique, d&#8217;effectuer une recherche dans un ensemble de champs de types textes.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span class="kw1">SELECT</span></a> <span class="sy1">*</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=FROM&amp;lr=lang_en"><span class="kw1">FROM</span></a> products
    <span class="sy1">-&gt;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=WHERE&amp;lr=lang_en"><span class="kw1">WHERE</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=MATCH&amp;lr=lang_en"><span class="kw1">MATCH</span></a> <span class="br0">&#40;</span>title<span class="sy2">,</span>description<span class="br0">&#41;</span> AGAINST <span class="br0">&#40;</span><span class="st0">'open moko'</span><span class="br0">&#41;</span><span class="sy2">;</span></pre></div></div>

<p>Avantage&nbsp;: la solution est pratique, lorsque le besoin est simple et tr&egrave;s sp&eacute;cifique. En revanche, il faudra mettre les mains dans le camboui, et la solution peut devenir difficile &agrave; mettre en &oelig;uvre et maintenir lorsque le besoin est un peu plus complexe. Et puis, selon la volum&eacute;trie, les perfs ne sont pas au top. Au final, les possibilit&eacute;s restent un peu limit&eacute;es.</p>
<h2>Doctrine Search Behavior</h2>
<p>Je mentionne la solution qui me semble injustement peu connue. L&#8217;ORM Doctrine, embarqu&eacute; avec <a href="http://www.miximum.fr/tag/symfony">symfony</a>, <a href="http://www.doctrine-project.org/documentation/manual/1_1/en/searching">propose un <i>behavior</i> qui permet de g&eacute;n&eacute;rer automatiquement un index full text</a>.</p>
<p>Une solution pratique et rapide pour g&eacute;rer un moteur de recherche sur des sites batis avec ce framework.</p>

<div class="wp_syntax"><div class="code"><pre class="yml" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"># schema.yml
&nbsp;
Product:
  actAs:
    Searchable:
      fields: [title, description]
# ...</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="re0">$products</span> <span class="sy0">=</span> Doctrine<span class="sy0">::</span><span class="me2">getTable</span><span class="br0">&#40;</span><span class="st_h">'product'</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">search</span><span class="br0">&#40;</span><span class="st_h">'clavier pour blonde'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>C&#8217;est facile, c&#8217;est rapide, que demande le peuple<span class="fine">&nbsp;</span>?</p>
<h2>MNoGoSearch</h2>
<p><a href="http://www.mnogosearch.org/">mnoGoSearch</a> est un moteur de recherche &eacute;crit en C et compos&eacute; de deux parties&nbsp;: d&#8217;une part, un crawler (indexeur) capable de naviguer sur des pages html ou en texte pur, et une interface de requ&ecirc;te pour effectuer les recherches.</p>
<p>MnogoSearch fonctionne &laquo;&nbsp;&agrave; la Google&nbsp;&raquo;, le robot explore r&eacute;guli&egrave;rement votre contenu, et construit son index ainsi. L&#8217;avantage, c&#8217;est que vous d&eacute;tenez la main sur la configuration de l&#8217;indexeur. MnogoSearch est capable d&#8217;indexer des sites en plusieurs langues, des groupes de sites, supporte plusieurs bases de donn&eacute;es, et il vous sera possible d&#8217;effectuer vos requ&ecirc;tes via des fonctions PHP.</p>
<p>En bref, MnogoSearch est parfait si vous souhaitez mettre en place un moteur de recherche basique sur vos pages de contenu, tout en contr&ocirc;lant la teneur de votre index.</p>
<h2>Sphinx</h2>
<div class="postimg alignright"><a href="http://www.flickr.com/photos/17513020@N00/362900750/" title="Paraguayensis Kandinsky Detectivicus" target="_blank"><img src="http://farm1.static.flickr.com/100/362900750_5369302dde_m.jpg" alt="Paraguayensis Kandinsky Detectivicus" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc-sa/2.0/" title="Attribution-NonCommercial-ShareAlike License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/17513020@N00/362900750/" title="julianrod" target="_blank">julianrod</a></small></div>
<p><a href="http://www.sphinxsearch.com/about.html">Sphinx est un autre moteur de recherche full text</a>, &eacute;crit en C++. Sa particularit&eacute;<span class="fine">&nbsp;</span>? Sphinx a &eacute;t&eacute; sp&eacute;cialement con&ccedil;u avec la performances &agrave; l&#8217;esprit. Si l&#8217;on en croit les benchmarks (j&#8217;avoue ne jamais l&#8217;avoir test&eacute; en personne), il poutre tout simplement les performances d&#8217;une recherche full text basique de mysql, et l&#8217;enl&egrave;ve honorablement sur mnogosearch.</p>
<p>Sphinx est donc capable d&#8217;indexer une &eacute;norme quantit&eacute; de documents (plusieurs gigas) &agrave; une grande rapidit&eacute;, et d&#8217;effectuer des recherches en un temps record. Il est capable d&#8217;indexer des donn&eacute;es provenant de plusieurs sources (c&#8217;est &agrave; dire, ce n&#8217;est pas qu&#8217;un crawler de pages web), et fournit des apis dans la plupart des langages majeurs.</p>
<p>Il est de plus relativement facile &agrave; mettre en place, ce qui en fait un bon choix de moteur de recherche. D&#8217;ailleurs, Sphinx est utilis&eacute; par des gros projets, tels que thepiratebay, mininova, craigslist, ou dailymotion.</p>
<h2>Luc&egrave;ne / Solr</h2>
<p>Alors l&agrave;, c&#8217;est la Rolls-Royce des moteurs de recherche. Luc&egrave;ne / Solr, &eacute;crit en Java, est sans doute le moteur de recherche libre le plus puissant du moment, fournissant toutes les fonctionnalit&eacute;s dont vous aviez r&ecirc;v&eacute; (requ&ecirc;tes bool&eacute;ennes, recherche par facette, r&eacute;plication, recherche distribu&eacute;e, etc.).</p>
<p>Pour &ecirc;tre exact, Luc&egrave;ne est la biblioth&egrave;que d&#8217;indexation et de r&eacute;cup&eacute;ration de donn&eacute;es. Solr, qui encapsule Luc&egrave;ne, est un moteur de recherche complet qui fournit une interface sous forme d&#8217;API XML / JSON.</p>
<p>Si vous souhaitez avoir une id&eacute;e de la mani&egrave;re dont on installe, configure et utilise Solr, je vous laisse consulter mon <a href="http://www.miximum.fr/tutos/192-integrer-solr-a-symfony">tutoriel sur l&#8217;int&eacute;gration de Solr &agrave; Symfony</a>.</p>
<p>Dans la plupart des cas, si votre besoin pr&eacute;sente un minimum de complexit&eacute;, Solr est la technologie &agrave; employer. L&#8217;inconv&eacute;niant<span class="fine">&nbsp;</span>? La configuration de la b&ecirc;te requiert certaines comp&eacute;tences, et les ressources n&eacute;cessaires &agrave; faire tourner le servlet java ne sont pas n&eacute;gligeables. Solr / Luc&egrave;ne reste, dans tous les cas, une excellente solution de moteur de recherche.</p>
<h2>Zend Luc&egrave;ne</h2>
<div class="postimg alignleft"><a href="http://www.flickr.com/photos/21943179@N06/3145066465/" title="el buscador" target="_blank"><img src="http://farm4.static.flickr.com/3295/3145066465_d8abbcbacb_m.jpg" alt="el buscador" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc-sa/2.0/" title="Attribution-NonCommercial-ShareAlike License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/21943179@N06/3145066465/" title="Ignacio Conejo" target="_blank">Ignacio Conejo</a></small></div>
<p>Pour terminer notre tour d&#8217;horizon, j&#8217;aimerais introduire pour ceux qui ne connaissent pas le projet <a href="http://framework.zend.com/manual/fr/zend.search.lucene.html">Zend Luc&egrave;ne</a>. Zend Luc&egrave;ne, qui fait partie du Zend Framework, est une r&eacute;impl&eacute;mentation de Luc&egrave;ne en php. Le moteur de recherche fonctionne via une api php, et l&#8217;index g&eacute;n&eacute;r&eacute; est compatible avec Solr.</p>
<p>Cette solution est d&#8217;une extr&egrave;me simplicit&eacute;, il devient possible de mettre en place un moteur de recherche <i>full php</i> puissant avec une simplicit&eacute; et une rapidit&eacute; d&eacute;concertante. La documentation de Symfony fournit d&#8217;ailleurs <a href="http://www.symfony-project.org/jobeet/1_2/Doctrine/en/17">un exemple d&#8217;impl&eacute;mentation</a>.</p>
<p>En revanche, <a href="http://groups.google.com/group/symfony-users/browse_thread/thread/9c3a002438db9c0">les performances ne sont pas au rendez-vous</a>, et si le nombre d&#8217;objets index&eacute;s devient trop important (plusieurs dizaines de milliers), Zend Luc&egrave;ne deviendra vite inutilisable. &Agrave; r&eacute;server pour les besoins sp&eacute;cifiques, mais &agrave; la volum&eacute;trie limit&eacute;e.</p>
<h2>Conclusions</h2>
<p>J&#8217;esp&egrave;re que ce petit tour d&#8217;horizon, volontairement synth&eacute;tique, vous aura pr&eacute;sent&eacute; quelques informations utiles. Il reste tr&egrave;s incomplet, j&#8217;ai omis certaines technos qui me paraissaient peu fiables ou plus mises &agrave; jour, ou tout simplement parce que je ne les connais pas. Je me suis &eacute;galement limit&eacute; aux technologies libres.</p>
<p>Et vous, vous utilisez quoi pour votre moteur de recherche<span class="fine">&nbsp;</span>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/methodes-et-outils/322-quel-moteur-de-recherche-pour-votre-site/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Changer le mot de passe root de MySQL</title>
		<link>http://www.miximum.fr/methodes-et-outils/38-changer-le-mot-de-passe-root-de-mysql</link>
		<comments>http://www.miximum.fr/methodes-et-outils/38-changer-le-mot-de-passe-root-de-mysql#comments</comments>
		<pubDate>Mon, 19 May 2008 09:50:58 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Méthodes et outils]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[système]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/methodes-et-outils/38-changer-le-mot-de-passe-root-de-mysql</guid>
		<description><![CDATA[Pour changer le mot de passe de l&#8217;utilisateur root, utiliser la commande&#160;: mysqladmin -u root -p &#60;password_actuel&#62; password &#60;nouveau_password&#62;]]></description>
			<content:encoded><![CDATA[<p>Pour changer le mot de passe de l&#8217;utilisateur root, utiliser la commande&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;">mysqladmin <span class="re5">-u</span> root <span class="re5">-p</span> <span class="sy0">&lt;</span>password_actuel<span class="sy0">&gt;</span> password <span class="sy0">&lt;</span>nouveau_password<span class="sy0">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/methodes-et-outils/38-changer-le-mot-de-passe-root-de-mysql/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir une base MySQL vers SQL Server</title>
		<link>http://www.miximum.fr/methodes-et-outils/36-convertir-une-base-mysql-vers-sql-server</link>
		<comments>http://www.miximum.fr/methodes-et-outils/36-convertir-une-base-mysql-vers-sql-server#comments</comments>
		<pubDate>Thu, 15 May 2008 08:20:16 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Méthodes et outils]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/methodes-et-outils/36-convertir-une-base-mysql-vers-sql-server</guid>
		<description><![CDATA[Bon, &#231;a me fait mal de faire &#231;a, mais j&#8217;ai eu besoin pour le boulot de convertir des bases MySQL vers MSSQL. J&#8217;ai &#233;t&#233; bien incapable de trouver des outils libre qui font cela. Tant mieux, &#224; la limite, parce que SQL Server, c&#8217;est vraiment de la daube. Bref, pour ceux qui comme moi seraient [...]]]></description>
			<content:encoded><![CDATA[<p>Bon, &ccedil;a me fait mal de faire &ccedil;a, mais j&#8217;ai eu besoin pour le boulot de convertir des bases MySQL vers MSSQL.</p>
<p>J&#8217;ai &eacute;t&eacute; bien incapable de trouver des outils libre qui font cela. Tant mieux, &agrave; la limite, parce que SQL Server, c&#8217;est vraiment de la daube.</p>
<p>Bref, pour ceux qui comme moi seraient coinc&eacute;s, voici une technique qui peut d&eacute;panner, m&ecirc;me si elle n&#8217;est pas parfaite.</p>
<p>La premi&egrave;re &eacute;tape, c&#8217;est d&#8217;installer le driver ODBC pour MySQL. Ensuite, il faut configurer le connecteur dans Panneau de configuration > Outils d&#8217;administration > Source de donn&eacute;es ODBC.</p>
<p>S&eacute;lectionner Ajouter et cr&eacute;er une nouvelle source de donn&eacute;es en choisissant le connecteur MySQL ODBC. Il vous faudra configurer les param&egrave;tres de connexion &agrave; la base.</p>
<p>Ensuite, il faut cr&eacute;er la base &agrave; la main sous SQL Server (facile).</p>
<p>Supposons que vous vouliez importer la table < table >, cr&eacute;ez une nouvelle requ&ecirc;te, et&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;">EXEC master<span class="sy0">.</span>dbo<span class="sy0">.</span>sp_addlinkedserver
    @server <span class="sy0">=</span> N<span class="st0">'MYSQL'</span><span class="sy0">,</span>
    @srvproduct<span class="sy0">=</span>N<span class="st0">'MySQL'</span><span class="sy0">,</span>
    @provider<span class="sy0">=</span>N<span class="st0">'MSDASQL'</span><span class="sy0">,</span>
    @provstr<span class="sy0">=</span>N<span class="st0">'DRIVER={MySQL ODBC 5.1 Driver};
        SERVER=&lt;server&gt;;
        DATABASE=&lt;base&gt;;
        USER=&lt;user&gt;;
        PASSWORD=&lt;pass&gt;;
        PORT=&lt;port&gt;;
        OPTION=3'</span></pre></div></div>

<p>Ex&eacute;cutez, puis lancez une nouvelle requ&ecirc;te&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw1">SELECT</span> <span class="sy0">*</span> <span class="kw1">INTO</span> <span class="sy0">&lt;</span>base<span class="sy0">&gt;.</span>dbo<span class="sy0">.&lt;</span>table<span class="sy0">&gt;</span>
<span class="kw1">FROM</span> OPENQUERY<span class="br0">&#40;</span>MySQL<span class="sy0">,</span> <span class="st0">'SELECT * FROM &lt;table&gt;'</span><span class="br0">&#41;</span></pre></div></div>

<p>Il devrait cr&eacute;er la table et importer toutes les donn&eacute;es. Ensuite, il vous faudra v&eacute;rifier &agrave; la main les compatibilit&eacute;s des donn&eacute;es, recr&eacute;er les cl&eacute;s et les index, et tout le bazar. Mais bon, c&#8217;est mieux que rien.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/methodes-et-outils/36-convertir-une-base-mysql-vers-sql-server/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Comment obtenir la structure d&#8217;une table MySQL en PHP</title>
		<link>http://www.miximum.fr/methodes-et-outils/34-comment-obtenir-la-structure-dune-table-mysql-en-php</link>
		<comments>http://www.miximum.fr/methodes-et-outils/34-comment-obtenir-la-structure-dune-table-mysql-en-php#comments</comments>
		<pubDate>Tue, 06 May 2008 14:38:10 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Méthodes et outils]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/methodes-et-outils/34-comment-obtenir-la-structure-dune-table-mysql-en-php</guid>
		<description><![CDATA[Pour je ne sais quelle raison, vous voulez obtenir la liste des champs d&#8217;une base MySQL en PHP&#160;? Voici le bout de code n&#233;cessaire&#160;: &#60;?php mysql_connect&#40;&#34;blablabla&#34;&#41;; mysql_select_db&#40;&#34;base&#34;&#41;; &#160; ... &#160; $fieldFist = mysql_list_fields&#40;&#34;base&#34;, &#34;utilisateur&#34;&#41;; $numFields = mysql_num_fields&#40;$fieldList&#41;; for &#40;$i = 0 ; $i &#60; $numFields ; $i++&#41;&#123; printf&#40;&#34;%s : %s\n&#34;, mysql_field_name&#40;$fieldList, $i&#41;, mysql_field_type&#40;$fieldList, $i&#41;&#41;; &#125; [...]]]></description>
			<content:encoded><![CDATA[<p>Pour je ne sais quelle raison, vous voulez obtenir la liste des champs d&#8217;une base MySQL en PHP<span class="fine">&nbsp;</span>? Voici le bout de code n&eacute;cessaire&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw2">&lt;?php</span>
<a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="st0">&quot;blablabla&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="st0">&quot;base&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="sy0">...</span>
&nbsp;
<span class="re0">$fieldFist</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_list_fields"><span class="kw3">mysql_list_fields</span></a><span class="br0">&#40;</span><span class="st0">&quot;base&quot;</span><span class="sy0">,</span> <span class="st0">&quot;utilisateur&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$numFields</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_num_fields"><span class="kw3">mysql_num_fields</span></a><span class="br0">&#40;</span><span class="re0">$fieldList</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">0</span> <span class="sy0">;</span> <span class="re0">$i</span> <span class="sy0">&lt;</span> <span class="re0">$numFields</span> <span class="sy0">;</span> <span class="re0">$i</span><span class="sy0">++</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
    <a href="http://www.php.net/printf"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;<span class="es6">%s</span> : <span class="es6">%s</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <a href="http://www.php.net/mysql_field_name"><span class="kw3">mysql_field_name</span></a><span class="br0">&#40;</span><span class="re0">$fieldList</span><span class="sy0">,</span> <span class="re0">$i</span><span class="br0">&#41;</span><span class="sy0">,</span> <a href="http://www.php.net/mysql_field_type"><span class="kw3">mysql_field_type</span></a><span class="br0">&#40;</span><span class="re0">$fieldList</span><span class="sy0">,</span> <span class="re0">$i</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/methodes-et-outils/34-comment-obtenir-la-structure-dune-table-mysql-en-php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Remise à zéro d&#8217;une table MySQL</title>
		<link>http://www.miximum.fr/methodes-et-outils/14-remise-a-zero-dune-table-mysql</link>
		<comments>http://www.miximum.fr/methodes-et-outils/14-remise-a-zero-dune-table-mysql#comments</comments>
		<pubDate>Mon, 28 Apr 2008 13:47:14 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Méthodes et outils]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/methodes-et-outils/14-remise-a-zero-dune-table-mysql</guid>
		<description><![CDATA[Les d&#233;butants qui veulent remettre &#224; z&#233;ro une table MySQL (c&#8217;est &#224; dire, supprimer tous les enregistrements pour obtenir une table vide), utilisent souvent la commande&#160;: DELETE FROM &#60;table&#62; Il est plus propre d&#8217;utiliser la commande&#160;: TRUNCATE TABLE &#60;table&#62; Cette commande est bien plus rapide, et r&#233;initialise compl&#232;tement la table (auto_increment &#224; 0). Attention, toutefois, [...]]]></description>
			<content:encoded><![CDATA[<p>Les d&eacute;butants qui veulent remettre &agrave; z&eacute;ro une table MySQL (c&#8217;est &agrave; dire, supprimer tous les enregistrements pour obtenir une table vide), utilisent souvent la commande&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><a href="http://search.mysql.com/search?site=refman-51&amp;q=DELETE&amp;lr=lang_en"><span class="kw1">DELETE</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=FROM&amp;lr=lang_en"><span class="kw1">FROM</span></a> <span class="sy1">&lt;</span>table<span class="sy1">&gt;</span></pre></div></div>

<p>Il est plus propre d&#8217;utiliser la commande&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><a href="http://search.mysql.com/search?site=refman-51&amp;q=TRUNCATE&amp;lr=lang_en"><span class="kw2">TRUNCATE</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=TABLE&amp;lr=lang_en"><span class="kw1">TABLE</span></a> <span class="sy1">&lt;</span>table<span class="sy1">&gt;</span></pre></div></div>

<p>Cette commande est bien plus rapide, et r&eacute;initialise compl&egrave;tement la table (auto_increment &agrave; 0).</p>
<p>Attention, toutefois, si vous avez des contraintes d&#8217;int&eacute;grit&eacute;s ou des transactions, il est plus prudent de <a href="http://dev.mysql.com/doc/refman/5.0/en/truncate.html">consulter la documentation</a> avant toute op&eacute;ration.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/methodes-et-outils/14-remise-a-zero-dune-table-mysql/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment dupliquer une table MySQL</title>
		<link>http://www.miximum.fr/methodes-et-outils/13-comment-dupliquer-une-table-mysql</link>
		<comments>http://www.miximum.fr/methodes-et-outils/13-comment-dupliquer-une-table-mysql#comments</comments>
		<pubDate>Mon, 28 Apr 2008 11:59:40 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Méthodes et outils]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/methodes-et-outils/13-comment-dupliquer-une-table-mysql</guid>
		<description><![CDATA[Vous cherchez comment cloner / copier / dupliquer une table MySQL&#160;? Facile. Connectez vous &#224; la base, et utilisez la commande&#160;: SHOW CREATE TABLE &#60;nom de la table&#62;; MySQL va vous afficher la commande utilis&#233;e pour cr&#233;er la structure de la table. Utilisez cette commande, en changeant le nom, pour cr&#233;er une nouvelle table &#224; [...]]]></description>
			<content:encoded><![CDATA[<p>Vous cherchez comment cloner / copier / dupliquer une table MySQL<span class="fine">&nbsp;</span>? Facile. Connectez vous &agrave; la base, et utilisez la commande&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><a href="http://search.mysql.com/search?site=refman-51&amp;q=SHOW&amp;lr=lang_en"><span class="kw1">SHOW</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=CREATE&amp;lr=lang_en"><span class="kw1">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=TABLE&amp;lr=lang_en"><span class="kw1">TABLE</span></a> <span class="sy1">&lt;</span>nom de la table<span class="sy1">&gt;</span><span class="sy2">;</span></pre></div></div>

<p>MySQL va vous afficher la commande utilis&eacute;e pour cr&eacute;er la structure de la table. Utilisez cette commande, en changeant le nom, pour cr&eacute;er une nouvelle table &agrave; la structure identique. Ensuite, pour dupliquer le contenu&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span class="kw2">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span class="kw1">INTO</span></a> <span class="sy1">&lt;</span>nouvelle table<span class="sy1">&gt;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span class="kw1">SELECT</span></a> <span class="sy1">*</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=FROM&amp;lr=lang_en"><span class="kw1">FROM</span></a> <span class="sy1">&lt;</span>ancienne table<span class="sy1">&gt;</span><span class="sy2">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/methodes-et-outils/13-comment-dupliquer-une-table-mysql/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

