<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commentaires sur : Manipulation de tableaux associatifs</title>
	<atom:link href="http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html</link>
	<description>Le coin de toile Lyonnais de Thanh Nguyen</description>
	<lastBuildDate>Tue, 06 Dec 2011 21:25:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Par : Calak</title>
		<link>http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html/comment-page-1#comment-395</link>
		<dc:creator>Calak</dc:creator>
		<pubDate>Fri, 28 Jan 2005 22:20:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.sutekidane.net/manipulation-de-tableaux-associatifs#comment-395</guid>
		<description>awi!
Et du coup, on gagne encore près de 10% de temps d&#039;exécution ^_^;
C&#039;est vrai, je n&#039;y aurais pas pensé à mettre des quote pour les int aussi...
Ou bien c&#039;était trop simple pour y penser, ou bien le c/c++ et autres languages &quot;évolués&quot; font que perd certaines habitudes ^^</description>
		<content:encoded><![CDATA[<p>awi!<br />
Et du coup, on gagne encore près de 10% de temps d&#8217;exécution ^_^;<br />
C&#8217;est vrai, je n&#8217;y aurais pas pensé à mettre des quote pour les int aussi&#8230;<br />
Ou bien c&#8217;était trop simple pour y penser, ou bien le c/c++ et autres languages &laquo;&nbsp;évolués&nbsp;&raquo; font que perd certaines habitudes ^^</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : solo</title>
		<link>http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html/comment-page-1#comment-393</link>
		<dc:creator>solo</dc:creator>
		<pubDate>Fri, 28 Jan 2005 15:45:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.sutekidane.net/manipulation-de-tableaux-associatifs#comment-393</guid>
		<description>Que penserais-tu de toujours mettre des &quot;&#039;&quot; pour englober tes valeurs. C&#039;est tout à fait jouable si on prend en compte que les champs int de MySQL sont alimentables même si les valeurs insérées sont entourées de simples quotes.

Je ne pense pas que ça soit aussi bourrin que ça en a l&#039;air étant donné que MySQL et PHP(4) ne sont pas pas si sévères quand au typage des données traitées.</description>
		<content:encoded><![CDATA[<p>Que penserais-tu de toujours mettre des &laquo;&nbsp;&#8216;&nbsp;&raquo; pour englober tes valeurs. C&#8217;est tout à fait jouable si on prend en compte que les champs int de MySQL sont alimentables même si les valeurs insérées sont entourées de simples quotes.</p>
<p>Je ne pense pas que ça soit aussi bourrin que ça en a l&#8217;air étant donné que MySQL et PHP(4) ne sont pas pas si sévères quand au typage des données traitées.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Calak</title>
		<link>http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html/comment-page-1#comment-392</link>
		<dc:creator>Calak</dc:creator>
		<pubDate>Fri, 28 Jan 2005 15:40:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.sutekidane.net/manipulation-de-tableaux-associatifs#comment-392</guid>
		<description>J&#039;ai essayé mais n&#039;y suis pas arrivé. En fait, array_map attend une fonction.
La fonction en elle même j&#039;ai essayé de l&#039;otimiser.

Sinon, si je ne voulais pas passer par array_map, je devais faire une boucle, et ça aurait bouffé du temps aussi.

Quel serait ta proposition? :D
( à noter que mon code est approximativement 2fois plus rapide que le sien :p )</description>
		<content:encoded><![CDATA[<p>J&#8217;ai essayé mais n&#8217;y suis pas arrivé. En fait, array_map attend une fonction.<br />
La fonction en elle même j&#8217;ai essayé de l&#8217;otimiser.</p>
<p>Sinon, si je ne voulais pas passer par array_map, je devais faire une boucle, et ça aurait bouffé du temps aussi.</p>
<p>Quel serait ta proposition? <img src='http://www.sutekidane.net/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
( à noter que mon code est approximativement 2fois plus rapide que le sien :p )</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : solo</title>
		<link>http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html/comment-page-1#comment-391</link>
		<dc:creator>solo</dc:creator>
		<pubDate>Fri, 28 Jan 2005 12:47:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.sutekidane.net/manipulation-de-tableaux-associatifs#comment-391</guid>
		<description>Bien vu pour le implode. :)

Par contre tu pourrais remplacer ta fonction par une écriture conditionnelle de la forme:

&quot;(expression) ? val1 : val2;&quot; ^^</description>
		<content:encoded><![CDATA[<p>Bien vu pour le implode. <img src='http://www.sutekidane.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Par contre tu pourrais remplacer ta fonction par une écriture conditionnelle de la forme:</p>
<p>&laquo;&nbsp;(expression) ? val1 : val2;&nbsp;&raquo; ^^</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Calak</title>
		<link>http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html/comment-page-1#comment-390</link>
		<dc:creator>Calak</dc:creator>
		<pubDate>Fri, 28 Jan 2005 12:40:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.sutekidane.net/manipulation-de-tableaux-associatifs#comment-390</guid>
		<description>désolé, 3 commentaires à la suite :&#124;

concernant ton premier post, il pourrait être par mal optimisé aussi. Je ne fais pas de tests de bench car là, ça sert même à rien:

    // On mémorise la configuration concerant les magic_quotes_gpc
     define(&quot;__CFG__MQGPC__&quot;, get_magic_quotes_gpc());
     // On crée un tableau avec les différents noms de champs de formulaires postés
     $tableau2cles = array_keys($_POST);
     // Si les magic_quotes sont activées
     if ((__CFG__MQGPC__))
     {
          // On parcourt le tableau
          foreach($tableau2cles as $cle) {
               $_POST[$cle] = addslashes($_POST[$cle]);
          }
     }

j&#039;ai corrigé ça en live, donc j&#039;ai p-e loupé un point-virgule ou une bétise comme ça :p</description>
		<content:encoded><![CDATA[<p>désolé, 3 commentaires à la suite <img src='http://www.sutekidane.net/blog/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
<p>concernant ton premier post, il pourrait être par mal optimisé aussi. Je ne fais pas de tests de bench car là, ça sert même à rien:</p>
<p>    // On mémorise la configuration concerant les magic_quotes_gpc<br />
     define(&laquo;&nbsp;__CFG__MQGPC__&nbsp;&raquo;, get_magic_quotes_gpc());<br />
     // On crée un tableau avec les différents noms de champs de formulaires postés<br />
     $tableau2cles = array_keys($_POST);<br />
     // Si les magic_quotes sont activées<br />
     if ((__CFG__MQGPC__))<br />
     {<br />
          // On parcourt le tableau<br />
          foreach($tableau2cles as $cle) {<br />
               $_POST[$cle] = addslashes($_POST[$cle]);<br />
          }<br />
     }</p>
<p>j&#8217;ai corrigé ça en live, donc j&#8217;ai p-e loupé un point-virgule ou une bétise comme ça :p</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Calak</title>
		<link>http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html/comment-page-1#comment-389</link>
		<dc:creator>Calak</dc:creator>
		<pubDate>Fri, 28 Jan 2005 12:31:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.sutekidane.net/manipulation-de-tableaux-associatifs#comment-389</guid>
		<description>oops j&#039;oubliais une fonction, celle qui rajoute les &#039; &#039; dans le cas où la valeur est une string.
C&#039;est la partie qui bouffe le plus de temps dans tout l&#039;algo.
Au début j&#039;étais passé par &quot;create_function&quot; mais ca prend bcp trop de ressources. Je suis donc passé par une fonction extérieure.

function protect_quote(&amp;$value)
{
	if (is_string($value)) $value = &quot;&#039;&quot; . $value . &quot;&#039;&quot;;
}</description>
		<content:encoded><![CDATA[<p>oops j&#8217;oubliais une fonction, celle qui rajoute les &#8216; &#8216; dans le cas où la valeur est une string.<br />
C&#8217;est la partie qui bouffe le plus de temps dans tout l&#8217;algo.<br />
Au début j&#8217;étais passé par &laquo;&nbsp;create_function&nbsp;&raquo; mais ca prend bcp trop de ressources. Je suis donc passé par une fonction extérieure.</p>
<p>function protect_quote(&#038;$value)<br />
{<br />
	if (is_string($value)) $value = &laquo;&nbsp;&#8216;&nbsp;&raquo; . $value . &laquo;&nbsp;&#8216;&nbsp;&raquo;;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Calak</title>
		<link>http://www.sutekidane.net/blog/manipulation-de-tableaux-associatifs.html/comment-page-1#comment-388</link>
		<dc:creator>Calak</dc:creator>
		<pubDate>Fri, 28 Jan 2005 12:29:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.sutekidane.net/manipulation-de-tableaux-associatifs#comment-388</guid>
		<description>Pourquoi utiliser de grosses boucles bien gourmandes? ;)

Voici le code que j&#039;utilise.
J&#039;ai fais des tests par rapport à ton code, en retirant la partie &quot;mysql&quot; ( afin de mettre en avant la vitesse de l&#039;algo de parsing )
Voici deux version de mon code, une version lisible et une autre bcp moins. Mais j&#039;ai remarqué lors de mes tests que la version &quot;all in-line&quot; est sensiblement plus rapide ;)

function insert_array($table, $array) 
{
	$sql = &#039;INSERT INTO `&#039; . $this-&gt;add_prefix($table) . &#039;` (`&#039; . implode(&#039;`, `&#039;, array_keys($array)) . &#039;`) VALUES (&#039; . implode(&#039;, &#039;,array_map($this-&gt;protect_quote($value), $array)) . &#039;)&#039;;
	return $this-&gt;query($sql);
}
function insert_array2($table, $array) 
{
	$sql = &#039;INSERT INTO `&#039; . $this-&gt;add_prefix($table) . &#039;` &#039;;
	$sql .= &#039;(`&#039; . implode(&#039;`, `&#039;, array_keys($array)) . &#039;`) &#039;;
	$sql .= &#039;VALUES (&#039; . implode(&#039;, &#039;,array_map($this-&gt;protect_quote($value), $array)) . &#039;)&#039;;
	return $this-&gt;query($sql);
}</description>
		<content:encoded><![CDATA[<p>Pourquoi utiliser de grosses boucles bien gourmandes? <img src='http://www.sutekidane.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Voici le code que j&#8217;utilise.<br />
J&#8217;ai fais des tests par rapport à ton code, en retirant la partie &laquo;&nbsp;mysql&nbsp;&raquo; ( afin de mettre en avant la vitesse de l&#8217;algo de parsing )<br />
Voici deux version de mon code, une version lisible et une autre bcp moins. Mais j&#8217;ai remarqué lors de mes tests que la version &laquo;&nbsp;all in-line&nbsp;&raquo; est sensiblement plus rapide <img src='http://www.sutekidane.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>function insert_array($table, $array)<br />
{<br />
	$sql = &#8216;INSERT INTO `&#8217; . $this->add_prefix($table) . &#8216;` (`&#8217; . implode(&#8216;`, `&#8217;, array_keys($array)) . &#8216;`) VALUES (&#8216; . implode(&#8216;, &#8216;,array_map($this->protect_quote($value), $array)) . &#8216;)&#8217;;<br />
	return $this->query($sql);<br />
}<br />
function insert_array2($table, $array)<br />
{<br />
	$sql = &#8216;INSERT INTO `&#8217; . $this->add_prefix($table) . &#8216;` &#8216;;<br />
	$sql .= &#8216;(`&#8217; . implode(&#8216;`, `&#8217;, array_keys($array)) . &#8216;`) &#8216;;<br />
	$sql .= &#8216;VALUES (&#8216; . implode(&#8216;, &#8216;,array_map($this->protect_quote($value), $array)) . &#8216;)&#8217;;<br />
	return $this->query($sql);<br />
}</p>
]]></content:encoded>
	</item>
</channel>
</rss>

