<?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>Consulenza-Web.com &#187; find</title>
	<atom:link href="http://www.consulenza-web.com/tag/find/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.consulenza-web.com</link>
	<description>Blog di Marco Pegoraro su Consulenza Web ed Informatica, Programmazione Web e realizzazione di Siti Web Accessibili.</description>
	<lastBuildDate>Mon, 30 Jan 2012 08:39:56 +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>Utilizzare operatori sql in CakePHP find()</title>
		<link>http://www.consulenza-web.com/2009/02/utilizzare-operatori-sql-in-cakephp-find/</link>
		<comments>http://www.consulenza-web.com/2009/02/utilizzare-operatori-sql-in-cakephp-find/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 12:46:18 +0000</pubDate>
		<dc:creator>peg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.consulenza-web.com/?p=29</guid>
		<description><![CDATA[Riporto il sunto di una discussione sviluppata sul Gruppo Google di CakePHP inerente all&#8217;utilizzo di operatori SQL nelle operazioni di estrazione dati (finder query): http://groups.google.com/group/cake-php/browse_thread/thread/89dd8a8846bad3a1?hl=en L&#8217;autore ha la necessità di estrarre da un campo di testo un numero limitato di caratteri utilizzando l&#8217;operatore SQL LEFT: LEFT(Table.field, len) as new_field_name La soluzione proposta (e testata) consiste [...]]]></description>
			<content:encoded><![CDATA[<p>Riporto il sunto di una discussione sviluppata sul <a title="Vai al gruppo CakePHP" href="http://groups.google.com/group/cake-php/" class="aga aga_5" target="_blank">Gruppo Google</a> di CakePHP inerente all&#8217;utilizzo di operatori SQL nelle operazioni di estrazione dati (finder query):<br />
<a title="Vai alla discussione" href="http://groups.google.com/group/cake-php/browse_thread/thread/89dd8a8846bad3a1?hl=en" class="aga aga_6" target="_blank">http://groups.google.com/group/cake-php/browse_thread/thread/89dd8a8846bad3a1?hl=en</a></p>
<p>L&#8217;autore ha la necessità di estrarre da un campo di testo un numero limitato di caratteri utilizzando l&#8217;operatore SQL LEFT:</p>
<pre>LEFT(Table.field, len) as new_field_name</pre>
<p>La soluzione proposta (e testata) consiste nell&#8217;utilizzo dell&#8217;operatore direttamente nell&#8217;elenco dei campi da estrarre come parametro aggiuntivo dell&#8217;operazione <em>find()</em>.</p>
<pre>$list = $this-&gt;User-&gt;find( "all", array(
  fields = array(
    'id',
    'username',
    'left(User.username, 5) as short_username'
  )
));</pre>
<p>Questo comando di estrazione genera come output la seguente struttura associativa:</p>
<pre>array(
  0 =&gt; array(
    [User] =&gt; array(
      [id] =&gt; 1
      [username] = Marco Pegoraro
    )
    [0] =&gt; array(
      [short_username] =&gt; Marco
    )
  )
)</pre>
<p>Si può dunque notare come il campo ottenuto mediante operatore SQL sia stato erogato fuori dal raggruppamento del modello e inserito sotto ad un indice numerico.</p>
<p>Ho fatto alcuni test utilizzando le relazioni tra i modelli (belongsTo) e ho estratto campi da più modelli definendo campi <em>elaborati</em> da più modelli. Tali campi vengono sempre proposti sotto l&#8217;indice 0.</p>
<p>Al momento in cui scrivo la discussione è in attesa di una soluzione per modificare in modo esplicito il nome del raggruppamento di questi campi prodotto di un operatore SQL.</p>
<h2>Alcune risorse utili:</h2>
<ul>
<li><a href="http://groups.google.com/group/cake-php/browse_thread/thread/f823cc7f168cd619?hl=en" class="aga aga_7" target="_blank">http://groups.google.com/group/cake-php/browse_thread/thread/f823cc7f168cd619?hl=en</a></li>
<li><a href="http://teknoid.wordpress.com/2008/09/29/dealing-with-calculated-fields-in-cakephps-find/" class="aga aga_8" target="_blank">http://teknoid.wordpress.com/2008/09/29/dealing-with-calculated-fields-in-cakephps-find/</a></li>
<li><a href="http://i-love-cake.pastebin.com/f78d0639a" class="aga aga_9" target="_blank">http://i-love-cake.pastebin.com/f78d0639a</a> (MySql Dbo variant)</li>
</ul>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Segnala presso:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F&amp;title=Utilizzare+operatori+sql+in+CakePHP+find%28%29" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F&amp;title=Utilizzare+operatori+sql+in+CakePHP+find%28%29" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F&amp;title=Utilizzare+operatori+sql+in+CakePHP+find%28%29" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F&amp;title=Utilizzare+operatori+sql+in+CakePHP+find%28%29" rel="nofollow" title="Add to&nbsp;LinkedIn"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/linkedin.png" title="Add to&nbsp;LinkedIn" alt="Add to&nbsp;LinkedIn" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F&amp;title=Utilizzare+operatori+sql+in+CakePHP+find%28%29" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Utilizzare+operatori+sql+in+CakePHP+find%28%29+@+http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.consulenza-web.com%2F2009%2F02%2Futilizzare-operatori-sql-in-cakephp-find%2F&amp;t=Utilizzare+operatori+sql+in+CakePHP+find%28%29" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.consulenza-web.com/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.consulenza-web.com/2009/02/utilizzare-operatori-sql-in-cakephp-find/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

