<?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>Blog d&#039;un développeur multi-support &#187; Zend framework</title>
	<atom:link href="http://www.oni-ecchi.info/blog/tag/zend-framework/feed" rel="self" type="application/rss+xml" />
	<link>http://www.oni-ecchi.info/blog</link>
	<description>[DIM] pour les intimes :)</description>
	<lastBuildDate>Mon, 06 Feb 2012 18:51:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Utiliser une procédure stocké mysql avec Zend !</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-php/utiliser-une-procedure-stocke-en-mysql.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-php/utiliser-une-procedure-stocke-en-mysql.html#comments</comments>
		<pubDate>Tue, 02 Dec 2008 19:40:29 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Découverte PHP]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[procédure stocké]]></category>
		<category><![CDATA[transact-sql]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[Zend framework]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=94</guid>
		<description><![CDATA[Dans un article précédent, je créais la procédure stocké &#171;&#160;import&#160;&#187;, voilà comment je l&#8217;utilise dans Zend. Je n&#8217;invente rien, j&#8217;ai trouvé la manip sur http://www.ericmery.fr/blog/zend_db-sql-server-procedure-stockee. ?View Code PHP1 2 3 4 5 6 7 8 9 10 $registry = Zend_Registry::getInstance&#40;&#41;; $config = $registry-&#62;get&#40;&#34;config&#34;&#41;; &#160; $db = Zend_Db::factory&#40;$config-&#62;db&#41;; &#160; $stmt = $db-&#62;prepare&#40;&#34;call import(?,?,?);&#34;&#41;; $stmt-&#62;bindParam&#40;1, $param1, PDO::PARAM_STR,1000&#41;; [...]]]></description>
			<content:encoded><![CDATA[<p>Dans un article précédent, je créais la <a href="http://www.oni-ecchi.info/blog/tag/procedure-stocke" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec procédure stocké">procédure stocké</a> &laquo;&nbsp;import&nbsp;&raquo;, voilà comment je l&#8217;utilise dans Zend.</p>
<p>Je n&#8217;invente rien, j&#8217;ai trouvé la manip sur <a href="http://www.ericmery.fr/blog/zend_db-sql-server-procedure-stockee/">http://www.ericmery.fr/blog/zend_db-sql-server-procedure-stockee.<br />
</a></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p94code2'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p942"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p94code2"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$registry</span> <span style="color: #339933;">=</span> Zend_Registry<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$config</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$registry</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;config&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> Zend_Db<span style="color: #339933;">::</span><span style="color: #004000;">factory</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$config</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$stmt</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;call import(?,?,?);&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$stmt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bindParam</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$param1</span><span style="color: #339933;">,</span> PDO<span style="color: #339933;">::</span><span style="color: #004000;">PARAM_STR</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$stmt</span><span style="color: #339933;">-&gt;;</span>bindParam<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$param2</span><span style="color: #339933;">,</span> PDO<span style="color: #339933;">::</span><span style="color: #004000;">PARAM_STR</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$stmt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bindParam</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #000088;">$param3</span><span style="color: #339933;">,</span> PDO<span style="color: #339933;">::</span><span style="color: #004000;">PARAM_STR</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$stmt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Magie, c&#8217;est la même chose. On remercie PDO et son abstracteur de base de donnée utilisé !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-php/utiliser-une-procedure-stocke-en-mysql.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[Mysql] Procédure Stocké</title>
		<link>http://www.oni-ecchi.info/blog/sql/mysql-procedure-stocke.html</link>
		<comments>http://www.oni-ecchi.info/blog/sql/mysql-procedure-stocke.html#comments</comments>
		<pubDate>Tue, 02 Dec 2008 19:29:45 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[procédure stocké]]></category>
		<category><![CDATA[Zend framework]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=91</guid>
		<description><![CDATA[Pour un projet d&#8217;annuaire de Flux RSS, j&#8217;ai du faire en sorte que l&#8217;on puisse importer ses Flux dans l&#8217;annuaire via un fichier XML opml que tout bon agrégateur (google reader, netvibes) fournit. Donc admettons que l&#8217;on a 100 flux RSS à importer il faut pour chaque flux vérifier si le flux n&#8217;existe pas déjà [...]]]></description>
			<content:encoded><![CDATA[<p>Pour un projet d&#8217;annuaire de Flux RSS, j&#8217;ai du faire en sorte que l&#8217;on puisse importer ses Flux dans l&#8217;annuaire via un fichier XML opml que tout bon agrégateur (google reader, netvibes) fournit. Donc admettons que l&#8217;on a 100 flux RSS à importer il faut pour chaque flux vérifier si le flux n&#8217;existe pas déjà sinon le créer en base. Donc il faut prévoir un maximum de 200 requêtes SQL.</p>
<p>Seulement voilà, si on fait les instructions de test d&#8217;existence et d&#8217;insertion au niveau <a href="http://www.oni-ecchi.info/blog/tag/php" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec php">PHP</a>, cela fait 200 aller retour entre <a href="http://www.oni-ecchi.info/blog/tag/php" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec php">PHP</a> et la base <a href="http://www.oni-ecchi.info/blog/tag/mysql" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec mysql">Mysql</a>. Hors ce qui plombe un script c&#8217;est souvent ces aller retour incessants .. Un moyen d&#8217;optimiser ce traitement a été de créer une <a href="http://www.oni-ecchi.info/blog/tag/procedure-stocke" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec procédure stocké">procédure stocké</a> qui prend en paramètre le fichier XML (où plutôt une représentation épuré plus strict), et de faire exécuter les 200 requêtes DANS Mysql. Chouette non ? Plus rapide, plus stable, plus optimisé .. que du bonheur.</p>
<h3>Procédure Stocké en Mysql</h3>
<p>Vous allez rire, mais d&#8217;après mes recherches googlidiennes très peu de personnes font des procédures en Mysql. Cela vient sans doute du fait qu&#8217;elles sont apparru avec mysql 5 et que c&#8217;est encore &laquo;&nbsp;neuf&nbsp;&raquo;.</p>
<p>Tous les exemples que l&#8217;on trouve sur le sujet sont pour SQL serveur PRo, donc du transact-SQL. Et le souci c&#8217;est qu&#8217;il n&#8217;y pas forcement d&#8217;équivalence entre les fonctions transact-SQL et les fonctions mysql. La synthaxe n&#8217;est décidement pas la même.</p>
<h3>Outil utilisé</h3>
<p><a href="http://dev.mysql.com/downloads/gui-tools/5.0.html">Mysql query browser !</a></p>
<p>L&#8217;exemple que je donne n&#8217;est valable qu&#8217;a travers sont interface .. zarb.. m&#8217;enfin c&#8217;est un très bon outil quand même, rien à voir avec un phpMyAdmin tout POURRI !</p>
<h3>Création de la requête</h3>
<p>Voilà la précédure allégé que j&#8217;ai crée (je fais d&#8217;autres test en version un peu plus lourde). Je vais essayer de la commenter au mieux.</p>
<p>La procédure s&#8217;appelle import, elle est dans la base de donné nommé &laquo;&nbsp;Fluxe&nbsp;&raquo; et on l&#8217;appelle et l&#8217;utilise comme ceci</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p91code5'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p915"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p91code5"><pre class="sql" style="font-family:monospace;">call import<span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">&quot;premier flux|http://monsite|http://monsite/fluxrss|description;
deuxieme flix|http://monsite2|http://www.google.fr/bidule.xml|autre description;
troisieme|http://monsite3|http://monsite2/rss.xml|description;&quot;</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Le premier paramètre est la chaine retravaillé coté PHP qui correspond à chaque ligne de l&#8217;XML, et le deuxième paramètre est le nombre de flux. Une entré se fini via un &laquo;&nbsp;;&nbsp;&raquo; et chaque colonne est séparé via un &nbsp;&raquo; | &laquo;&nbsp;. Bon je sais, mes délimiteurs ne sont pas assez complexe dans cet exemple et cela serait risque de bug si une description ou url comporterait des points virgules et des pipes&#8230;</p>
<p>Voici la requête :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p91code6'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p916"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
</pre></td><td class="code" id="p91code6"><pre class="sql" style="font-family:monospace;">DELIMITER $$  <span style="color: #808080; font-style: italic;">-- pas trop compris l'interet O_o</span>
<span style="color: #993333; font-weight: bold;">DROP</span> PROCEDURE <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`fluxe`</span><span style="color: #66cc66;">.</span><span style="color: #ff0000;">`import`</span> $$
<span style="color: #808080; font-style: italic;">-- Supprime la procédure si elle existe (je suis fort en anglais hein ? ^^) </span>
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> DEFINER<span style="color: #66cc66;">=</span><span style="color: #ff0000;">`root`</span>@<span style="color: #ff0000;">`localhost`</span> PROCEDURE <span style="color: #ff0000;">`import`</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">In</span> myCsv Text<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">In</span> nbElement Int<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">-- crée la procédure avec deux paramètres &quot;IN&quot; de type Text et Int. C'est à dire que c'est deux paramètres obligatoires pour exécuter la requête.  </span>
&nbsp;
BEGIN <span style="color: #808080; font-style: italic;">-- Debut de la procédure</span>
&nbsp;
<span style="color: #808080; font-style: italic;">-- Declare mes variables correspondant aux colonnes de ma table Flux</span>
DECLARE nom varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>;
DECLARE urlSite varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>;
DECLARE myurlFlux varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>;
DECLARE description text;
DECLARE  ligne_flux VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">-- correspondra à une ligne de Flux</span>
DECLARE cpt int; <span style="color: #808080; font-style: italic;">-- un petit compteur pour faire une jolie boucle While</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">set</span> cpt <span style="color: #66cc66;">=</span> nbElement;  <span style="color: #808080; font-style: italic;">-- / !  Voilà comment on définit une variable SET var = valeur; </span>
&nbsp;
WHILE cpt <span style="color: #66cc66;">&lt;=</span> nbElement <span style="color: #993333; font-weight: bold;">and</span> cpt <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span> do  <span style="color: #808080; font-style: italic;">-- j'aurais pu utiliser une boucle Loop aussi.</span>
&nbsp;
  <span style="color: #993333; font-weight: bold;">select</span> <span style="color: #993333; font-weight: bold;">replace</span><span style="color: #66cc66;">&#40;</span>substring<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>myCsv<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">';'</span><span style="color: #66cc66;">,</span> cpt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> length<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>myCsv<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">';'</span><span style="color: #66cc66;">,</span> cpt <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">';'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">as</span> ligne <span style="color: #993333; font-weight: bold;">into</span> ligne_flux;
&nbsp;
  <span style="color: #808080; font-style: italic;">-- Outch &quot;KEKECER ?&quot; vous devez vous pausez comme question :)</span>
  <span style="color: #808080; font-style: italic;">-- c'est simple, je découpe le premier paramètre In pour en extraire la 1er ligne trouvé.</span>
  <span style="color: #808080; font-style: italic;">-- Les fonctions appellés ne sont pas du php mais bien du SQL ! Puissant non ?</span>
  <span style="color: #808080; font-style: italic;">-- l'idée de récupèrer la 1er ligne DANS une variable &quot;ligne_flux&quot;, d'où le &quot;select ... INTO variable&quot; </span>
&nbsp;
  <span style="color: #808080; font-style: italic;">-- Parsage de la chaine &quot;ligne_flux&quot; pour en extraire les colonnes, rebelote quoi ..</span>
  <span style="color: #993333; font-weight: bold;">select</span>  <span style="color: #993333; font-weight: bold;">replace</span><span style="color: #66cc66;">&#40;</span>substring<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>ligne_flux<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> length<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>ligne_flux<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">into</span> nom;
  <span style="color: #993333; font-weight: bold;">select</span>  <span style="color: #993333; font-weight: bold;">replace</span><span style="color: #66cc66;">&#40;</span>substring<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>ligne_flux<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> length<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>ligne_flux<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">into</span> urlSite;
  <span style="color: #993333; font-weight: bold;">select</span>  <span style="color: #993333; font-weight: bold;">replace</span><span style="color: #66cc66;">&#40;</span>substring<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>ligne_flux<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> length<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>ligne_flux<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">3</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">into</span> myurlFlux;
  <span style="color: #993333; font-weight: bold;">select</span>  <span style="color: #993333; font-weight: bold;">replace</span><span style="color: #66cc66;">&#40;</span>substring<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>ligne_flux<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> length<span style="color: #66cc66;">&#40;</span>substring_index<span style="color: #66cc66;">&#40;</span>ligne_flux<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">4</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">into</span> description;
&nbsp;
  <span style="color: #808080; font-style: italic;">-- Insertion que si la ligne n'existe pas. Le critère est l'url du flux.</span>
  <span style="color: #993333; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">select</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">from</span> flux <span style="color: #993333; font-weight: bold;">where</span> urlFlux <span style="color: #66cc66;">=</span> myurlFlux<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> THEN
       <span style="color: #993333; font-weight: bold;">insert</span> <span style="color: #993333; font-weight: bold;">into</span> flux <span style="color: #66cc66;">&#40;</span>nom<span style="color: #66cc66;">,</span>urlSite<span style="color: #66cc66;">,</span>urlFlux<span style="color: #66cc66;">,</span>description<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">values</span> <span style="color: #66cc66;">&#40;</span>nom<span style="color: #66cc66;">,</span>urlSite<span style="color: #66cc66;">,</span>myurlFlux<span style="color: #66cc66;">,</span>description<span style="color: #66cc66;">&#41;</span>;
   end <span style="color: #993333; font-weight: bold;">if</span>;
&nbsp;
 <span style="color: #808080; font-style: italic;">-- on décrémente le compteur</span>
 <span style="color: #993333; font-weight: bold;">set</span> cpt <span style="color: #66cc66;">=</span> cpt <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span>;
end while;
&nbsp;
END $$
DELIMITER ;</pre></td></tr></table></div>

<p>Et voilà c&#8217;est fini !</p>
<h3>Lien de référence</h3>
<p>La base :<a href="http://dev.mysql.com/doc/refman/5.0/fr/stored-procedure-syntax.html">http://dev.mysql.com/doc/refman/5.0/fr/stored-procedure-syntax.html</a></p>
<p>les variables : <a href="http://dev.mysql.com/doc/refman/5.0/fr/variables-in-stored-procedures.html">http://dev.mysql.com/doc/refman/5.0/fr/variables-in-stored-procedures.html</a><br />
If, while, case, et tous les contrôles : <a href="http://dev.mysql.com/doc/refman/5.0/fr/flow-control-constructs.html">http://dev.mysql.com/doc/refman/5.0/fr/flow-control-constructs.html</a></p>
<p>Mis à part la documentation officiel, j&#8217;ai rien trouvé d&#8217;autres à me mettre sous la dent ..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/sql/mysql-procedure-stocke.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework !</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-php/zend-framework.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-php/zend-framework.html#comments</comments>
		<pubDate>Fri, 10 Oct 2008 16:00:10 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Découverte PHP]]></category>
		<category><![CDATA[comparatif]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Zend framework]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=78</guid>
		<description><![CDATA[Depuis quelques jours, (2 semaines pour être exactes), je m&#8217;essai à Zend Framework. Et je le trouve pas mal. Loin de moi l&#8217;idée de faire un comparatif, mais voilà mon opinion entre Zend et Symfony &#8230;mon coeur balance ^^ Symfony Zend Framework Documentation Un bouquin papier pas à jour peut être fatal. Mais un bouquin [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis quelques jours, (2 semaines pour être exactes), je m&#8217;essai à Zend <a href="http://www.oni-ecchi.info/blog/tag/framework" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec framework">Framework</a>. Et je le trouve pas mal.</p>
<p>Loin de moi l&#8217;idée de faire un <a href="http://www.oni-ecchi.info/blog/tag/comparatif" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec comparatif">comparatif</a>, mais voilà mon opinion entre Zend et <a href="http://www.oni-ecchi.info/blog/tag/symfony" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec Symfony">Symfony</a> &#8230;<span style="font-size: x-small;">mon coeur balance ^^</span></p>
<table>
<thead>
<tr>
<th></th>
<th>Symfony</th>
<th><a href="http://www.oni-ecchi.info/blog/tag/zend-framework" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec Zend framework">Zend Framework</a></th>
</tr>
</thead>
<tbody>
<tr>
<td class="table_menu">Documentation</td>
<td>Un bouquin papier pas à jour peut être fatal. Mais un bouquin dans les mains c&#8217;est bien !</td>
<td><a href="http://php.developpez.com/livres/?page=en#L9781933988320" target="_blank">Un livre sort en novembre</a>, mais pour l&#8217;instant on reste à lire de long manuel sur écran.</td>
</tr>
<tr>
<td class="table_menu">Prise en main</td>
<td>Rapide avec un bouquin :)</td>
<td>Lente, le manuel Zend est fait pour ceux qui connaissent ou ont l&#8217;habitude de le parcourir. Ce n&#8217;est pas une écriture didactique comme Symfony je trouve.</td>
</tr>
<tr>
<td class="table_menu">Utilisation quotidienne</td>
<td>J&#8217;aime me concentrer seulement sur la logique applicative, j&#8217;aime tous les outils donnés en ligne de commande.</td>
<td>Le lego, une deuxième passion. Tout refaire, c&#8217;est flatteur pour l&#8217;égo et se dire &laquo;&nbsp;Ouais, j&#8217;ai tout compris&nbsp;&raquo;.</td>
</tr>
<tr>
<td class="table_menu">Rapidité d&#8217;exécution pour un projet simpe</td>
<td>Ouais ben ca rame un peu vu le nombre d&#8217;inclusion qu&#8217;il y a, mais c&#8217;est la rançon du succès.<br />
&laquo;&nbsp;Plus d&#8217;aide tu donneras, plus lent tu seras.&nbsp;&raquo;</td>
<td>I have the controll. Pardonner mon anglais déplorable, mais tout géré donne l&#8217;illusion de rapidité etc. C&#8217;est vrai et c&#8217;est faux. Ca dépend du développeur derrière :)</td>
</tr>
</tbody>
</table>
<p>Merde, c&#8217;est un comparatif très objectif. Tans pis. Vous noterez que je préfère symfony (c&#8217;est mon 1er framework alors bon c&#8217;est normal ^^).</p>
<p>Mais comme dirais un Romain &#8230; &laquo;&nbsp;le framework dépend du projet, desfois c&#8217;est mieux sans&nbsp;&raquo; :)</p>
<p>Sur ceux, bonne journée</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-php/zend-framework.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

