<?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>Web Development &#38; Stuff &#187; MySQL</title>
	<atom:link href="http://web-development-blog.co.uk/category/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://web-development-blog.co.uk</link>
	<description>Some interesting findings from web-dev land...</description>
	<lastBuildDate>Thu, 22 Dec 2011 15:35:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mysql multiple conditional joins with conditional select</title>
		<link>http://web-development-blog.co.uk/2010/05/15/mysql-multiple-conditional-joins-with-conditional-select/</link>
		<comments>http://web-development-blog.co.uk/2010/05/15/mysql-multiple-conditional-joins-with-conditional-select/#comments</comments>
		<pubDate>Sat, 15 May 2010 09:18:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=332</guid>
		<description><![CDATA[For my own records but may also be of interest to some&#8230;
This statement performs 4 conditional left outer joins and then uses CASE to conditionally select the returned columns as a single group of columns. 
So a polymorphic one to one relationship is returned in a single query.
123456789101112131415$sql = &#60;&#60;&#60;SQL
SELECT *, ELT(Log.action,'$elt_list') AS what,
&#160;CASE WHEN [...]]]></description>
			<content:encoded><![CDATA[<p>For my own records but may also be of interest to some&#8230;</p>
<p>This statement performs 4 conditional left outer joins and then uses CASE to conditionally select the returned columns as a single group of columns. </p>
<p>So a polymorphic one to one relationship is returned in a single query.</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$sql</span> <span class="sy0">=</span> <span class="co3">&lt;&lt;&lt;SQL<br />
SELECT *, ELT(Log.action,'$elt_list') AS what,<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN 'Anonymous Visitor' WHEN Friend.source_type = '$typeRecipient' THEN 'Referrer' WHEN Friend.source_type = '$typeDiVisitor' THEN 'DI visitor' WHEN Friend.source_type = '$typeFriend' THEN 'Friend' ELSE NULL END as 'source',<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN Visitor.title WHEN Friend.source_type = '$typeRecipient' THEN Recipient.title WHEN Friend.source_type = '$typeDiVisitor' THEN DiVisitor.title WHEN Friend.source_type = '$typeFriend' THEN RefFriend.title ELSE NULL END as 'Source.title',<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN Visitor.firstname WHEN Friend.source_type = '$typeRecipient' THEN Recipient.firstname WHEN Friend.source_type = '$typeDiVisitor' THEN DiVisitor.firstname WHEN Friend.source_type = '$typeFriend' THEN RefFriend.firstname ELSE NULL END as 'Source.firstname',<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN Visitor.surname WHEN Friend.source_type = '$typeRecipient' THEN Recipient.surname WHEN Friend.source_type = '$typeDiVisitor' THEN DiVisitor.surname WHEN Friend.source_type = '$typeFriend' THEN RefFriend.surname ELSE NULL END as 'Source.surname',<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN Visitor.email WHEN Friend.source_type = '$typeRecipient' THEN Recipient.email WHEN Friend.source_type = '$typeDiVisitor' THEN DiVisitor.email WHEN Friend.source_type = '$typeFriend' THEN RefFriend.email ELSE NULL END as 'Source.email'<br />
&nbsp;FROM friends AS Friend <br />
&nbsp;LEFT OUTER JOIN visitors AS Visitor ON (Visitor.id = Friend.source_id) AND (Friend.source_type = '$typeVisitor')<br />
&nbsp;LEFT OUTER JOIN visitors AS Recipient ON (Recipient.id = Friend.source_id) AND (Friend.source_type = '$typeRecipient')<br />
&nbsp;LEFT OUTER JOIN di_visitors AS DiVisitor ON (DiVisitor.id = Friend.source_id) AND (Friend.source_type = '$typeDiVisitor')<br />
&nbsp;LEFT OUTER JOIN friends AS RefFriend ON (RefFriend.id = Friend.source_id) AND (Friend.source_type = '$typeFriend'),<br />
&nbsp;log_table AS Log<br />
&nbsp;WHERE Log.model_id=Friend.id AND Log.type=$tf<br />
SQL</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/05/15/mysql-multiple-conditional-joins-with-conditional-select/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL query with nested statement in parent where clause</title>
		<link>http://web-development-blog.co.uk/2009/11/16/mysql-query-with-nested-statement-in-parent-where-clause/</link>
		<comments>http://web-development-blog.co.uk/2009/11/16/mysql-query-with-nested-statement-in-parent-where-clause/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 17:24:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=252</guid>
		<description><![CDATA[Quick reminder for myself of how to do a nested MySQL query with the nested statement in the parent where clause:
12345678910$sql = &#60;&#60;&#60;SQL
SELECT id
&#160;FROM invoices as Invoice
&#160;WHERE id NOT IN (
&#160; SELECT parent_id 
&#160; FROM invoices 
&#160; WHERE parent_id &#62; 0
&#160; GROUP BY parent_id &#160; &#160;
&#160;) AND billing_start &#60;= '$end'
SQL;
]]></description>
			<content:encoded><![CDATA[<p>Quick reminder for myself of how to do a nested MySQL query with the nested statement in the parent where clause:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$sql</span> <span class="sy0">=</span> <span class="co3">&lt;&lt;&lt;SQL<br />
SELECT id<br />
&nbsp;FROM invoices as Invoice<br />
&nbsp;WHERE id NOT IN (<br />
&nbsp; SELECT parent_id <br />
&nbsp; FROM invoices <br />
&nbsp; WHERE parent_id &gt; 0<br />
&nbsp; GROUP BY parent_id &nbsp; &nbsp;<br />
&nbsp;) AND billing_start &lt;= '$end'<br />
SQL</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2009/11/16/mysql-query-with-nested-statement-in-parent-where-clause/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP schema generate doesn&#8217;t like MySQL enum columns</title>
		<link>http://web-development-blog.co.uk/2009/11/05/cakephp-schema-generate-doesnt-like-mysql-enum-columns/</link>
		<comments>http://web-development-blog.co.uk/2009/11/05/cakephp-schema-generate-doesnt-like-mysql-enum-columns/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 20:04:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=219</guid>
		<description><![CDATA[Tried to do a schema snapshot of my db today (cake schema generate) to throw in SVN. I&#8217;d added an enum column to one of my tables and it threw this error:
1Notice: Schema generation error: invalid column type enum&#40;'flat_fee','per_unit'&#41; does not exist in DBO in /vhosts/site.com/accounts/cake/libs/model/schema.php on line 475
Enum must be too old-school and crusty [...]]]></description>
			<content:encoded><![CDATA[<p>Tried to do a schema snapshot of my db today (cake schema generate) to throw in SVN. I&#8217;d added an enum column to one of my tables and it threw this error:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">Notice: Schema generation error: invalid column <span class="kw3">type</span> enum<span class="br0">&#40;</span><span class="st_h">'flat_fee'</span>,<span class="st_h">'per_unit'</span><span class="br0">&#41;</span> does not exist <span class="kw1">in</span> DBO <span class="kw1">in</span> <span class="sy0">/</span>vhosts<span class="sy0">/</span>site.com<span class="sy0">/</span>accounts<span class="sy0">/</span>cake<span class="sy0">/</span>libs<span class="sy0">/</span>model<span class="sy0">/</span>schema.php on line <span class="nu0">475</span></div></td></tr></tbody></table></div>
<p>Enum must be too old-school and crusty these days!! I guess I could have used an boolean tinyint(1) (or a keyed association) but there&#8217;s something nice and readable about poor old simple innocent enum&#8230;.. *tears*</p>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2009/11/05/cakephp-schema-generate-doesnt-like-mysql-enum-columns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Query MySQL for records that were created within the last 7 days/week</title>
		<link>http://web-development-blog.co.uk/2009/10/02/query-mysql-for-records-that-were-created-within-the-last-7-daysweek/</link>
		<comments>http://web-development-blog.co.uk/2009/10/02/query-mysql-for-records-that-were-created-within-the-last-7-daysweek/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 15:22:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux servers]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=191</guid>
		<description><![CDATA[You can use this in your MySQL WHERE clause to return records that were created within the last 7 days/week:
1created &#62;= DATE_SUB&#40;CURDATE&#40;&#41;,INTERVAL 7 day&#41;
You can also use NOW() in the subtraction to give hh:mm:ss resolution. So to return records created exactly (to the second) within the last 24hrs, you could do:
1created &#62;= DATE_SUB&#40;NOW&#40;&#41;,INTERVAL 1 day&#41;
]]></description>
			<content:encoded><![CDATA[<p>You can use this in your MySQL WHERE clause to return records that were created within the last 7 days/week:</p>
<div class="codecolorer-container mysql " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="mysql codecolorer" style="font-family:Monaco,Lucida Console,monospace">created <span class="sy1">&gt;=</span> <span class="kw17">DATE_SUB</span><span class="br0">&#40;</span><span class="kw17">CURDATE</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy2">,</span><span class="kw11">INTERVAL</span> <span class="nu0">7</span> <span class="kw9">day</span><span class="br0">&#41;</span></div></td></tr></tbody></table></div>
<p>You can also use NOW() in the subtraction to give hh:mm:ss resolution. So to return records created exactly (to the second) within the last 24hrs, you could do:</p>
<div class="codecolorer-container mysql " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="mysql codecolorer" style="font-family:Monaco,Lucida Console,monospace">created <span class="sy1">&gt;=</span> <span class="kw17">DATE_SUB</span><span class="br0">&#40;</span><span class="kw17">NOW</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy2">,</span><span class="kw11">INTERVAL</span> <span class="nu0">1</span> <span class="kw9">day</span><span class="br0">&#41;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2009/10/02/query-mysql-for-records-that-were-created-within-the-last-7-daysweek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP plugin view overriding</title>
		<link>http://web-development-blog.co.uk/2009/08/27/cakephp-plugin-view-overriding/</link>
		<comments>http://web-development-blog.co.uk/2009/08/27/cakephp-plugin-view-overriding/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 16:47:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=167</guid>
		<description><![CDATA[Woo hoo! It&#8217;s possible to override CakePHP plugin views just like in Rails using the Engines plugin. Documentation on how to do it is a bit thin on the ground though.
Say you created a CakePHP plugin called &#8216;cms&#8217; and you had a plugin controller called &#8216;pages&#8217; inside the cms plugin. Just place the views you [...]]]></description>
			<content:encoded><![CDATA[<p>Woo hoo! It&#8217;s possible to override CakePHP plugin views just like in Rails using the Engines plugin. Documentation on how to do it is a bit thin on the ground though.</p>
<p>Say you created a CakePHP plugin called &#8216;cms&#8217; and you had a plugin controller called &#8216;pages&#8217; inside the cms plugin. Just place the views you want to override in:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sy0">/</span>app<span class="sy0">/</span>views<span class="sy0">/</span>plugins<span class="sy0">/</span>cms<span class="sy0">/</span>pages<span class="sy0">/</span></div></td></tr></tbody></table></div>
<p>I&#8217;ll post again when I&#8217;ve had a play at extending plugin controllers and models from the main app folder.</p>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2009/08/27/cakephp-plugin-view-overriding/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reset PHP array key values</title>
		<link>http://web-development-blog.co.uk/2009/05/16/reset-php-array-key-values/</link>
		<comments>http://web-development-blog.co.uk/2009/05/16/reset-php-array-key-values/#comments</comments>
		<pubDate>Sat, 16 May 2009 11:17:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Eco friendly / green computing]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=161</guid>
		<description><![CDATA[To reset the key values in  a PHP array you can do this:
1234567891011121314151617181920212223$things = array&#40;'a','b','c','d'&#41;;
unset&#40;$things&#91;0&#93;&#41;;
print_r&#40;$things&#41;; 

#outputs
#Array
#(
# &#160; &#160;[1] =&#62; b
# &#160; &#160;[2] =&#62; c
# &#160; &#160;[3] =&#62; d
#)

# Actually do the reset.
$things = array_values&#40;$things&#41;;

print_r&#40;$things&#41;;
#outputs 
#Array
#(
# &#160; &#160;[0] =&#62; b
# &#160; &#160;[1] =&#62; c
# &#160; &#160;[2] =&#62; d
#)
]]></description>
			<content:encoded><![CDATA[<p>To reset the key values in  a PHP array you can do this:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:100%;height:300px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$things</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'a'</span><span class="sy0">,</span><span class="st_h">'b'</span><span class="sy0">,</span><span class="st_h">'c'</span><span class="sy0">,</span><span class="st_h">'d'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">unset</span><span class="br0">&#40;</span><span class="re0">$things</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">print_r</span><span class="br0">&#40;</span><span class="re0">$things</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
<br />
<span class="co2">#outputs</span><br />
<span class="co2">#Array</span><br />
<span class="co2">#(</span><br />
<span class="co2"># &nbsp; &nbsp;[1] =&gt; b</span><br />
<span class="co2"># &nbsp; &nbsp;[2] =&gt; c</span><br />
<span class="co2"># &nbsp; &nbsp;[3] =&gt; d</span><br />
<span class="co2">#)</span><br />
<br />
<span class="co2"># Actually do the reset.</span><br />
<span class="re0">$things</span> <span class="sy0">=</span> <span class="kw3">array_values</span><span class="br0">&#40;</span><span class="re0">$things</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw3">print_r</span><span class="br0">&#40;</span><span class="re0">$things</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co2">#outputs </span><br />
<span class="co2">#Array</span><br />
<span class="co2">#(</span><br />
<span class="co2"># &nbsp; &nbsp;[0] =&gt; b</span><br />
<span class="co2"># &nbsp; &nbsp;[1] =&gt; c</span><br />
<span class="co2"># &nbsp; &nbsp;[2] =&gt; d</span><br />
<span class="co2">#)</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2009/05/16/reset-php-array-key-values/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dynamic object attributes / member variables with specific visibility not possible with PHP</title>
		<link>http://web-development-blog.co.uk/2009/05/06/dynamic-object-attributes-member-variables-with-specific-visibility-not-possible-with-php/</link>
		<comments>http://web-development-blog.co.uk/2009/05/06/dynamic-object-attributes-member-variables-with-specific-visibility-not-possible-with-php/#comments</comments>
		<pubDate>Wed, 06 May 2009 09:48:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Eco friendly / green computing]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=156</guid>
		<description><![CDATA[Ran into an interesting situation yesterday. I wanted to create some dynamic (overloading) object attributes (object member variables) in PHP with private visibility. Forcing encapsulation via getter methods. It seems this is not possible, as dynamic attributes are only ever public (see the PHP documentation). 
There is however, as always, a work around! If you [...]]]></description>
			<content:encoded><![CDATA[<p>Ran into an interesting situation yesterday. I wanted to create some dynamic (overloading) object attributes (object member variables) in PHP with private visibility. Forcing encapsulation via getter methods. It seems this is not possible, as dynamic attributes are only ever public (<a href="http://ca.php.net/manual/en/language.oop5.overloading.php">see the PHP documentation</a>). </p>
<p>There is however, as always, a work around! If you set a private containing array for your dynamic attributes you can get almost the same behaviour:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:100%;height:300px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">class</span> TestClass <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw2">private</span> <span class="re0">$dynamic_attribute_container</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co2"># This method is used to set new attributes.</span><br />
&nbsp; &nbsp; <span class="kw2">public</span> SettingMethod<span class="br0">&#40;</span><span class="re0">$variable_name</span><span class="sy0">,</span> <span class="re0">$variable_value</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">dynamic_attribute_container</span><span class="br0">&#91;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">variable_name</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">variable_value</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co2"># This method is used to return the attributes from within the private array container.</span><br />
&nbsp; &nbsp; <span class="kw2">public</span> GettingMethod<span class="br0">&#40;</span><span class="re0">$attribute_name</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co2"># Encapsulation code.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$output</span> <span class="sy0">=</span> <span class="kw3">strtolower</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">dynamic_attribute_container</span><span class="br0">&#91;</span><span class="re0">$attribute_name</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$output</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">$object</span> <span class="sy0">=</span> <span class="kw2">new</span> TestClass<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$object</span><span class="sy0">-&gt;</span><span class="me1">SettingMethod</span><span class="br0">&#40;</span><span class="st_h">'foo'</span><span class="sy0">,</span><span class="st_h">'bar'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$object</span><span class="sy0">-&gt;</span><span class="me1">foo</span><span class="sy0">;</span> <span class="co2"># This will error.</span><br />
<span class="re0">$object</span><span class="sy0">-&gt;</span><span class="me1">GettingMethod</span><span class="br0">&#40;</span><span class="st_h">'foo'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co2"># This will return bar.</span></div></td></tr></tbody></table></div>
<p>If anyone else has any thoughts on this subject I&#8217;d love to hear them.</p>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2009/05/06/dynamic-object-attributes-member-variables-with-specific-visibility-not-possible-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL indexes &#8211; query performance increase</title>
		<link>http://web-development-blog.co.uk/2009/02/25/mysql-indexes-query-performance-increase/</link>
		<comments>http://web-development-blog.co.uk/2009/02/25/mysql-indexes-query-performance-increase/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 11:54:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Eco friendly / green computing]]></category>
		<category><![CDATA[Linux servers]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=76</guid>
		<description><![CDATA[Today I had a log table report query that contained a nested query. It was taking ages (5mins) to complete. I investigated indexes which I had been meaning to look at for a while. Anyway I managed to bring down the query to 0.04s &#8211; I now have much love for indexes!!
Basic MySQL syntax:
1CREATE INDEX [...]]]></description>
			<content:encoded><![CDATA[<p>Today I had a log table report query that contained a nested query. It was taking ages (5mins) to complete. I investigated indexes which I had been meaning to look at for a while. Anyway I managed to bring down the query to 0.04s &#8211; I now have much love for indexes!!</p>
<p>Basic MySQL syntax:</p>
<div class="codecolorer-container sql " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="sql codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw1">CREATE</span> <span class="kw1">INDEX</span> index_name <span class="kw1">ON</span> table_name<span class="br0">&#40;</span>column_name<span class="br0">&#41;</span>;</div></td></tr></tbody></table></div>
<p>You can also create indexes when you create a table. In this example I&#8217;m indexing id,landing_id,page_id and action_id with INDEX (id,landing_id,page_id,action_id):</p>
<div class="codecolorer-container sql " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="sql codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw1">CREATE</span> <span class="kw1">TABLE</span> <span class="kw1">IF</span> <span class="kw1">NOT</span> <span class="kw1">EXISTS</span> visitor_actions <span class="br0">&#40;</span><br />
&nbsp; id INT <span class="kw1">UNSIGNED</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span> <span class="kw1">AUTO_INCREMENT</span> <span class="kw1">PRIMARY</span> <span class="kw1">KEY</span><span class="sy0">,</span><br />
&nbsp; landing_id INT <span class="kw1">UNSIGNED</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span><br />
&nbsp; page_id TINYINT <span class="kw1">UNSIGNED</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span><br />
&nbsp; action_id TINYINT <span class="kw1">UNSIGNED</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span><br />
&nbsp; dwell_time MEDIUMINT <span class="kw1">UNSIGNED</span> <span class="kw1">NULL</span><span class="sy0">,</span><br />
&nbsp; start TINYINT <span class="kw1">UNSIGNED</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span><br />
&nbsp; created_at DATETIME <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span><br />
&nbsp; <span class="kw1">INDEX</span> <span class="br0">&#40;</span>id<span class="sy0">,</span>landing_id<span class="sy0">,</span>page_id<span class="sy0">,</span>action_id<span class="br0">&#41;</span><br />
<span class="br0">&#41;</span> ENGINE<span class="sy0">=</span>INNODB;</div></td></tr></tbody></table></div>
<p>I&#8217;ll add to this post when I spend some more time looking at the different index types.</p>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2009/02/25/mysql-indexes-query-performance-increase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL TIMEDIFF calculate time difference in query</title>
		<link>http://web-development-blog.co.uk/2009/02/24/mysql-timediff-calculate-time-difference-in-query/</link>
		<comments>http://web-development-blog.co.uk/2009/02/24/mysql-timediff-calculate-time-difference-in-query/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 15:20:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=74</guid>
		<description><![CDATA[Handy, brings you back a time difference in hh:mm:ss format inside an MySQL query:
1TIMEDIFF&#40;date_time_one, date_time_two&#41;
]]></description>
			<content:encoded><![CDATA[<p>Handy, brings you back a time difference in hh:mm:ss format inside an MySQL query:</p>
<div class="codecolorer-container sql " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="sql codecolorer" style="font-family:Monaco,Lucida Console,monospace">TIMEDIFF<span class="br0">&#40;</span>date_time_one<span class="sy0">,</span> date_time_two<span class="br0">&#41;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2009/02/24/mysql-timediff-calculate-time-difference-in-query/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

