<?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>Money-Code &#187; sql</title>
	<atom:link href="http://www.money-code.com/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.money-code.com</link>
	<description>Coding For Online Success</description>
	<lastBuildDate>Tue, 15 Nov 2011 18:25:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Including your WordPress blogs to a external website</title>
		<link>http://www.money-code.com/2009/08/including-your-wordpress-blogs-to-a-external-website/</link>
		<comments>http://www.money-code.com/2009/08/including-your-wordpress-blogs-to-a-external-website/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 22:47:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.money-code.com/?p=522</guid>
		<description><![CDATA[I&#8217;ve been working on various CJ and EPN store fronts lately. Not creating new ones but working SEO and fattening them up with more reasons to visit. One of my popular ones I thought it would be cool to introduce a blog where I can promote more CJ items and promote other sites (treating it [...]


Related posts:<ol><li><a href='http://www.money-code.com/2007/09/simple-script-for-connecting-to-commission-junctions-product-web-service-and-populating-a-local-database/' rel='bookmark' title='Simple script for connecting to Commission Junction&#8217;s Product Web Service and populating a local database'>Simple script for connecting to Commission Junction&#8217;s Product Web Service and populating a local database</a></li>
<li><a href='http://www.money-code.com/2009/07/including-twitter-updates-in-your-site/' rel='bookmark' title='Including Twitter updates in your site'>Including Twitter updates in your site</a></li>
<li><a href='http://www.money-code.com/2007/09/capture-search-data-on-your-site/' rel='bookmark' title='Capture search data on your site'>Capture search data on your site</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.money-code.com%2F2009%2F08%2Fincluding-your-wordpress-blogs-to-a-external-website%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.money-code.com%2F2009%2F08%2Fincluding-your-wordpress-blogs-to-a-external-website%2F&amp;source=hanjicode&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I&#8217;ve been working on various CJ and EPN store fronts lately. Not creating new ones but working SEO and fattening them up with more reasons to visit. One of my popular ones I thought it would be cool to introduce a blog where I can promote more CJ items and promote other sites (treating it like a hub blog of sorts). I did not want to include the WordPress blog in a subdirectory, but wanted it as a sub domain (http://blog.test.com). This is located on another server (complicated circumstances), but I wanted to include recent posts within the home page of the store front.</p>
<p>I thought this over. I was originally just going to suck in the RSS feed from the blog, but I didn&#8217;t want the blog to impact performance in anyway. Performance can be impacted with slow delivery of the RSS (I&#8217;m already sucking in a eBay RSS feed there as well), or worse the RSS times out or has issues. I didn&#8217;t want that impression left to the potential customer.</p>
<p>I thought it might be cool to create a cron job to suck in the recent posts every hour via direct connection to the database on the remote server and populate a local database (the storefront). This way the &#8216;fetch&#8217; process is outside the performance of the site, and the presentation of the feed would be handled by the local mysql database (very quick). Plus.. it sounded like a nerdy thing to do this morning.</p>
<p>To do this, I created a local wp_posts table in the local database (this is not the WordPress database). I&#8217;m only needing a few things: date, title, comments, etc.</p>
<p>Here is the schema:</p>
<div class="dean_ch" style="white-space: wrap;"><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> <span class="st0">`wp_posts`</span> <span class="br0">&#40;</span><br />
<span class="st0">`ID`</span> bigint<span class="br0">&#40;</span><span class="nu0">20</span><span class="br0">&#41;</span> <span class="kw1">UNSIGNED</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span> <span class="kw1">AUTO_INCREMENT</span>,<br />
<span class="st0">`post_date`</span> datetime <span class="kw1">NOT</span> <span class="kw1">NULL</span> <span class="kw1">DEFAULT</span> <span class="st0">&#8217;0000-00-00 00:00:00&#8242;</span>,<br />
<span class="st0">`post_title`</span> text <span class="kw1">NOT</span> <span class="kw1">NULL</span>,<br />
<span class="st0">`post_name`</span> varchar<span class="br0">&#40;</span><span class="nu0">200</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span> <span class="kw1">DEFAULT</span> <span class="st0">&#8221;</span>,<br />
<span class="st0">`post_type`</span> varchar<span class="br0">&#40;</span><span class="nu0">20</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span> <span class="kw1">DEFAULT</span> <span class="st0">&#8216;post&#8217;</span>,<br />
<span class="st0">`comment_count`</span> bigint<span class="br0">&#40;</span><span class="nu0">20</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span> <span class="kw1">DEFAULT</span> <span class="st0">&#8217;0&#8242;</span>,<br />
<span class="kw1">PRIMARY</span> <span class="kw1">KEY</span>  <span class="br0">&#40;</span><span class="st0">`ID`</span><span class="br0">&#41;</span><br />
<span class="br0">&#41;</span> ENGINE=MyISAM  <span class="kw1">DEFAULT</span> CHARSET=utf8 <span class="kw1">AUTO_INCREMENT</span>=<span class="nu0">1</span></div>
<p>Next, I made the &#8216;worker&#8217; PHP CLI script that will run on the linux server in the background. This is not executed via a browser but using the PHP executable to parse it. It basically connects to the remote (WordPress) database and queries the latest 10 records. It then truncates my local database and repopulates it with new info.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co2">#!/usr/bin/php</span><br />
<span class="kw2">&lt;?php</span><br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st0">&#8216;DB_NAME&#8217;</span>, <span class="st0">&#8216;test&#8217;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st0">&#8216;DB_USER&#8217;</span>, <span class="st0">&#8216;test&#8217;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st0">&#8216;DB_PASSWORD&#8217;</span>, <span class="st0">&#8216;test&#8217;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st0">&#8216;DB_HOST&#8217;</span>, <span class="st0">&#8216;mysql.test.com&#8217;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st0">&#8216;LOCAL_DB_NAME&#8217;</span>, <span class="st0">&#8216;test&#8217;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st0">&#8216;LOCAL_DB_USER&#8217;</span>, <span class="st0">&#8216;test&#8217;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st0">&#8216;LOCAL_DB_PASSWORD&#8217;</span>, <span class="st0">&#8216;test&#8217;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st0">&#8216;LOCAL_DB_HOST&#8217;</span>, <span class="st0">&#8216;localhost&#8217;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span>DB_HOST, DB_USER, DB_PASSWORD<span class="br0">&#41;</span>;<br />
@<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span>DB_NAME<span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">&quot;Unable to select database&quot;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$sql</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= <span class="st0">&quot;SELECT post_date, post_type, comment_count, post_title, post_name<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM wp_8kzhbt_posts<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WHERE post_type = &#8216;post&#8217;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ORDER BY post_date DESC<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LIMIT 10&quot;</span>;<br />
<span class="kw1">if</span><span class="br0">&#40;</span>!<span class="re0">$rs</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Database Error<span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$sql</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="re0">$postArr</span> &nbsp; &nbsp; &nbsp; &nbsp;= <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span><span class="re0">$rs</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$num</span> &nbsp; &nbsp;= <span class="nu0">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$row</span> = <a href="http://www.php.net/mysql_fetch_object"><span class="kw3">mysql_fetch_object</span></a><span class="br0">&#40;</span><span class="re0">$rs</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;post_date&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp; = <span class="re0">$row</span>-&gt;<span class="me1">post_date</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;post_type&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp; = <span class="re0">$row</span>-&gt;<span class="me1">post_type</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;comment_count&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$row</span>-&gt;<span class="me1">comment_count</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;post_title&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp;= <span class="re0">$row</span>-&gt;<span class="me1">post_title</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;post_name&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp; = <span class="re0">$row</span>-&gt;<span class="me1">post_name</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$num</span>++;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<a href="http://www.php.net/mysql_free_result"><span class="kw3">mysql_free_result</span></a><span class="br0">&#40;</span><span class="re0">$rs</span><span class="br0">&#41;</span>;</p>
<p><span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/sizeof"><span class="kw3">sizeof</span></a><span class="br0">&#40;</span><span class="re0">$postArr</span><span class="br0">&#41;</span> &gt; <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// connect to local db</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// clean the table</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// re-populate</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$localCon</span> = <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span>LOCAL_DB_HOST, LOCAL_DB_USER, LOCAL_DB_PASSWORD<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; @<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span>LOCAL_DB_NAME<span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">&quot;Unable to select database&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sql</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= <span class="st0">&quot;TRUNCATE TABLE `wp_posts`&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span>,<span class="re0">$localCon</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Database Error &#8211; Local Connection<span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$num</span> = <span class="nu0">0</span>; <span class="re0">$num</span> &lt; <a href="http://www.php.net/sizeof"><span class="kw3">sizeof</span></a><span class="br0">&#40;</span><span class="re0">$postArr</span><span class="br0">&#41;</span>; <span class="re0">$num</span>++<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sql</span> &nbsp; &nbsp;= <span class="st0">&quot;INSERT INTO wp_posts(post_date,post_type,comment_count,post_title,post_name)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; VALUES(&#8216;&quot;</span>.<span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;post_date&#8217;</span><span class="br0">&#93;</span>.<span class="st0">&quot;&#8217;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8216;&quot;</span>.<span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;post_type&#8217;</span><span class="br0">&#93;</span>.<span class="st0">&quot;&#8217;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8216;&quot;</span>.<span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;comment_count&#8217;</span><span class="br0">&#93;</span>.<span class="st0">&quot;&#8217;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8216;&quot;</span>.<span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;post_title&#8217;</span><span class="br0">&#93;</span>.<span class="st0">&quot;&#8217;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8216;&quot;</span>.<span class="re0">$postArr</span><span class="br0">&#91;</span><span class="re0">$num</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;post_name&#8217;</span><span class="br0">&#93;</span>.<span class="st0">&quot;&#8217;)&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span>,<span class="re0">$localCon</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Database Error &#8211; Insert Local Connection<span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<a href="http://www.php.net/unset"><span class="kw3">unset</span></a><span class="br0">&#40;</span><span class="re0">$postArr</span><span class="br0">&#41;</span>;<br />
<span class="kw2">?&gt;</span></div>
<p>This script is added to the cron.hourly of the server is executed on a hourly basis. You could add this to crontab as well.</p>
<p>The next piece is on the storefront site itself. I query the local database and ask for the entries and reassembly my &#8216;permalink&#8217;. I could have used the guid field in the database, but it seems to convert a few of the URLs to permalinks. Not sure why, so I figured I would just create it. You may need to adjust it to fit your format.</p>
<div class="dean_ch" style="white-space: wrap;">
<span class="kw2">&lt;?php</span><br />
<span class="re0">$sql</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="st0">&quot;SELECT *<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM wp_posts<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ORDER BY post_date DESC&quot;</span>;<br />
<span class="kw1">if</span><span class="br0">&#40;</span>!<span class="re0">$rs</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span>,<span class="re0">$connect</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/trigger_error"><span class="kw3">trigger_error</span></a><span class="br0">&#40;</span><a href="http://www.php.net/sprintf"><span class="kw3">sprintf</span></a><span class="br0">&#40;</span><span class="st0">&quot;SQL Error: %d: %s<span class="es0">\n</span>&quot;</span> , <a href="http://www.php.net/mysql_errno"><span class="kw3">mysql_errno</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>, <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>, <span class="kw2">E_USER_ERROR</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span><span class="re0">$rs</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><span class="kw2">?&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;div <span class="kw2">class</span>=<span class="st0">&quot;header&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Recent Blog Posts<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;&lt;?<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$row</span> = <a href="http://www.php.net/mysql_fetch_object"><span class="kw3">mysql_fetch_object</span></a><span class="br0">&#40;</span><span class="re0">$rs</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$post_date</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="re0">$row</span>-&gt;<span class="me1">post_date</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$post_title</span>&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; = <span class="re0">$row</span>-&gt;<span class="me1">post_title</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$post_name</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="re0">$row</span>-&gt;<span class="me1">post_name</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$comments</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; = <span class="re0">$row</span>-&gt;<span class="me1">comment_count</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// assemble the permalink</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// http://blog.test.com/year/mo/day/post-name/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$dateArr</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="st0">&#8216; &#8216;</span>,<span class="re0">$post_date</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$dateSeg</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="st0">&#8216;-&#8217;</span>,<span class="re0">$dateArr</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$year</span>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="re0">$dateSeg</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$month</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="re0">$dateSeg</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$day</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="re0">$dateSeg</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$formatDate</span>&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; = showDate<span class="br0">&#40;</span><span class="re0">$post_date</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$url</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="st0">&#8216;http://blog.test.com/&#8217;</span>.<span class="re0">$year</span>.<span class="st0">&#8216;/&#8217;</span>.<span class="re0">$month</span>.<span class="st0">&#8216;/&#8217;</span>.<span class="re0">$day</span>.<span class="st0">&#8216;/&#8217;</span>.<span class="re0">$post_name</span>;?&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div style=<span class="st0">&quot;margin-bottom: 8px&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;a href=<span class="st0">&quot;&lt;?=$url?&gt;&quot;</span> target=<span class="st0">&quot;_blank&quot;</span> rel=<span class="st0">&quot;dofollow&quot;</span> style=<span class="st0">&quot;font-weight: bold;&quot;</span>&gt;&lt;?=<span class="re0">$post_title</span>?&gt;&lt;/a&gt; <span class="kw2">&lt;?</span>=<span class="re0">$formatDate</span>?&gt; <span class="br0">&#40;</span><span class="kw2">&lt;?</span>=<span class="re0">$comments</span>?&gt; comments<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;&lt;?<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<a href="http://www.php.net/mysql_free_result"><span class="kw3">mysql_free_result</span></a><span class="br0">&#40;</span><span class="re0">$rs</span><span class="br0">&#41;</span>;?&gt;</div>
<p>Have fun with this.. hope it helps. There is literally a million ways you can do this. I would probably suck the RSS feed in directly via the worker script, then parse and insert that into the database if I was to do it again.</p>
<div style='clear:both'></div>

<p>Related posts:<ol><li><a href='http://www.money-code.com/2007/09/simple-script-for-connecting-to-commission-junctions-product-web-service-and-populating-a-local-database/' rel='bookmark' title='Simple script for connecting to Commission Junction&#8217;s Product Web Service and populating a local database'>Simple script for connecting to Commission Junction&#8217;s Product Web Service and populating a local database</a></li>
<li><a href='http://www.money-code.com/2009/07/including-twitter-updates-in-your-site/' rel='bookmark' title='Including Twitter updates in your site'>Including Twitter updates in your site</a></li>
<li><a href='http://www.money-code.com/2007/09/capture-search-data-on-your-site/' rel='bookmark' title='Capture search data on your site'>Capture search data on your site</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.money-code.com/2009/08/including-your-wordpress-blogs-to-a-external-website/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Capture search data on your site</title>
		<link>http://www.money-code.com/2007/09/capture-search-data-on-your-site/</link>
		<comments>http://www.money-code.com/2007/09/capture-search-data-on-your-site/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 03:49:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<p>In early September, <a href="http://www.shoemoney.com/2007/09/04/are-you-selling-your-search-data-for-pennies/" target="_blank">ShoeMoney posed this question "Are You Selling Your Search Data For Pennies"</a>. This was a very interesting post talking about using AdSense for search (<script type="text/javascript"><!--
google_ad_client = "pub-4324451467976701";
google_ad_output = "textlink";
google_ad_format = "ref_text";
google_cpa_choice = "CAAQnfzw4AIaCJwZC9ix5DwoKN2uuIEBMAA";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>) to search your site and possibly generate revenue. This can be a great revenue tool for some, but as ShoeMoney mentions, that you are possibly throwing away incredibly useful data.

<p>On one of my sites (eBay niche site using RSS feeds to populate the store), I thought it would be a great opportunity to see what my visitors might be interested to see on the site. I recently included the eBay API to pull in 'featured' auctions, but what featured auctions would be successful for me? 



Related posts:<ol><li><a href='http://www.money-code.com/2007/09/using-ebays-api-to-search-auctions-and-return-results/' rel='bookmark' title='Using eBay&#8217;s API to search auctions and return results'>Using eBay&#8217;s API to search auctions and return results</a></li>
<li><a href='http://www.money-code.com/2007/09/simple-script-for-connecting-to-commission-junctions-product-web-service-and-populating-a-local-database/' rel='bookmark' title='Simple script for connecting to Commission Junction&#8217;s Product Web Service and populating a local database'>Simple script for connecting to Commission Junction&#8217;s Product Web Service and populating a local database</a></li>
<li><a href='http://www.money-code.com/2009/08/including-your-wordpress-blogs-to-a-external-website/' rel='bookmark' title='Including your WordPress blogs to a external website'>Including your WordPress blogs to a external website</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.money-code.com%2F2007%2F09%2Fcapture-search-data-on-your-site%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.money-code.com%2F2007%2F09%2Fcapture-search-data-on-your-site%2F&amp;source=hanjicode&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>In early September, <a href="http://www.shoemoney.com/2007/09/04/are-you-selling-your-search-data-for-pennies/" target="_blank">ShoeMoney posed this question &#8220;Are You Selling Your Search Data For Pennies&#8221;</a>. This was a very interesting post talking about using AdSense for search (<script type="text/javascript"><!--
google_ad_client = "pub-4324451467976701";
google_ad_output = "textlink";
google_ad_format = "ref_text";
google_cpa_choice = "CAAQnfzw4AIaCJwZC9ix5DwoKN2uuIEBMAA";
//-->
</script><br />
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>) to search your site and possibly generate revenue. This can be a great revenue tool for some, but as ShoeMoney mentions, that you are possibly throwing away incredibly useful data.</p>
<p>On one of my sites (eBay niche site using RSS feeds to populate the store), I thought it would be a great opportunity to see what my visitors might be interested to see on the site. I recently included the eBay API to pull in &#8216;featured&#8217; auctions, but what featured auctions would be successful for me?<br />
<!--break--></p>
<p>In my application, the search criteria is fed directly to my eBay API to pull real time auction results based off of their search. Before sending the search query to eBay, I wanted to track this data, so I can reference it and showcase those high searched items on the home page. I&#8217;ll be talking about the eBay API in another post, but first I&#8217;ll discuss how I capture search data.</p>
<p>First, we need to create the database table:</p>
<div class="dean_ch" style="white-space: wrap;">
CREATE TABLE `tblSearch` <span class="br0">&#40;</span><br />
&nbsp; `SearchID` int<span class="br0">&#40;</span><span class="nu0">11</span><span class="br0">&#41;</span> NOT <span class="kw2">NULL</span> auto_increment,<br />
&nbsp; `Criteria` varchar<span class="br0">&#40;</span><span class="nu0">250</span><span class="br0">&#41;</span> NOT <span class="kw2">NULL</span>,<br />
&nbsp; `MonthYear` varchar<span class="br0">&#40;</span><span class="nu0">4</span><span class="br0">&#41;</span> NOT <span class="kw2">NULL</span>,<br />
&nbsp; `<a href="http://www.php.net/count"><span class="kw3">Count</span></a>` int<span class="br0">&#40;</span><span class="nu0">11</span><span class="br0">&#41;</span> NOT <span class="kw2">NULL</span>,<br />
&nbsp; PRIMARY <a href="http://www.php.net/key"><span class="kw3">KEY</span></a> &nbsp;<span class="br0">&#40;</span>`SearchID`<span class="br0">&#41;</span><br />
<span class="br0">&#41;</span> ENGINE=MyISAM AUTO_INCREMENT=<span class="nu0">1</span> <span class="kw2">DEFAULT</span> CHARSET=latin1 AUTO_INCREMENT=<span class="nu0">1</span> ;<br />
&nbsp;</div>
<p>Now we need to make our search box. I like to work in a templated system using MVC (Model View Controller) architecture called Fusebox. This example will just assume that you&#8217;re passing from page to page, so any architecture (if any) will work just fine.</p>
<div class="dean_ch" style="white-space: wrap;">
&lt;div id=<span class="st0">&quot;head-ebay&quot;</span>&gt;&lt;h3&gt;Search&lt;/h3&gt;&lt;/div&gt;<br />
&lt;div id=<span class="st0">&quot;box&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">&lt;script language</span>=<span class="st0">&quot;javascript&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> validateSearch<span class="br0">&#40;</span>frm<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>frm.Criteria.value.length &lt; <span class="nu0">5</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; alert<span class="br0">&#40;</span><span class="st0">&quot;Search Criteria is too short&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; frm.Criteria.select<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">&lt;/script&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Please enter your search criteria.&lt;br&gt;&lt;br&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;form action=<span class="st0">&quot;searchResults.php&quot;</span> method=<span class="st0">&quot;post&quot;</span> name=<span class="st0">&quot;SearchForm&quot;</span> onSubmit=<span class="st0">&quot;return validateSearch(SearchForm);&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;table cellpadding=<span class="nu0">0</span> cellspacing=<span class="nu0">5</span> border=<span class="nu0">0</span> valign=<span class="st0">&quot;top&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;tr&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;&lt;strong&gt;Search:&lt;/strong&gt;&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;&lt;input type=<span class="st0">&quot;text&quot;</span> name=<span class="st0">&quot;Criteria&quot;</span> value=<span class="st0">&quot;&quot;</span> <span class="kw2">class</span>=<span class="st0">&quot;text&quot;</span> size=<span class="nu0">15</span>&gt;&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;&lt;input type=<span class="st0">&quot;submit&quot;</span> value=<span class="st0">&quot;Search&quot;</span> <span class="kw2">class</span>=<span class="st0">&quot;text&quot;</span>&gt;&lt;/td&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/tr&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/table&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/form&gt;<br />
&lt;/div&gt;<br />
&nbsp;</div>
<p>This form posts to searchResults.php, but we&#8217;re doing some client-side validation with javascript. I can&#8217;t stress the importance of controlling input and paying attention to security. This will be discussed in many posts in the future. This client-side validate is checking to see that the search word is longer than 5 characters.</p>
<p>On the processing page (searchResults.php), we need to follow up our client-side validation with server-side validation. The client-side validation is primary set up as a convenience to the user, the server-side is set up to protect our application and ensure that the input we&#8217;re expecting is correct.</p>
<div class="dean_ch" style="white-space: wrap;">
<span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;Criteria&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> || <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;Criteria&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> == <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Location:search.php&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;Criteria&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> &lt; <span class="nu0">5</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Search Criteria is too short&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;Criteria&quot;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><a href="http://www.php.net/htmlspecialchars"><span class="kw3">htmlspecialchars</span></a><span class="br0">&#40;</span><a href="http://www.php.net/strip_tags"><span class="kw3">strip_tags</span></a><span class="br0">&#40;</span><a href="http://www.php.net/addslashes"><span class="kw3">addslashes</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;Criteria&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;Criteria&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> == <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Location:search.php&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="re0">$monthYear</span>&nbsp; &nbsp; &nbsp; = <a href="http://www.php.net/date"><span class="kw3">date</span></a><span class="br0">&#40;</span><span class="st0">&#8216;my&#8217;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$sql</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="st0">&quot;UPDATE tblSearch<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SET Count = Count + 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WHERE Criteria = &#8216;&quot;</span>.safeSQL<span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;Criteria&quot;</span><span class="br0">&#93;</span>,<span class="nu0">2</span>,<span class="nu0">200</span><span class="br0">&#41;</span>.<span class="st0">&quot;&#8217;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND MonthYear = &#8216;&quot;</span>.<span class="re0">$monthYear</span>.<span class="st0">&quot;&#8217;&quot;</span>;<br />
<span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span>,<span class="re0">$connect</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/trigger_error"><span class="kw3">trigger_error</span></a><span class="br0">&#40;</span><a href="http://www.php.net/sprintf"><span class="kw3">sprintf</span></a><span class="br0">&#40;</span><span class="st0">&quot;SQL Error: %d: %s<span class="es0">\n</span>&quot;</span> , <a href="http://www.php.net/mysql_errno"><span class="kw3">mysql_errno</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>, <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>, <span class="kw2">E_USER_ERROR</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/mysql_affected_rows"><span class="kw3">mysql_affected_rows</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sql</span>&nbsp; &nbsp; = <span class="st0">&quot;INSERT INTO tblSearch(Criteria, MonthYear, Count)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; VALUES(&#8216;&quot;</span>.safeSQL<span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;Criteria&quot;</span><span class="br0">&#93;</span>,<span class="nu0">2</span>,<span class="nu0">200</span><span class="br0">&#41;</span>.<span class="st0">&quot;&#8217;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8216;&quot;</span>.<span class="re0">$monthYear</span>.<span class="st0">&quot;&#8217;,1)&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span>,<span class="re0">$connect</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/trigger_error"><span class="kw3">trigger_error</span></a><span class="br0">&#40;</span><a href="http://www.php.net/sprintf"><span class="kw3">sprintf</span></a><span class="br0">&#40;</span><span class="st0">&quot;SQL Error: %d: %s<span class="es0">\n</span>&quot;</span> , <a href="http://www.php.net/mysql_errno"><span class="kw3">mysql_errno</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>, <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>, <span class="kw2">E_USER_ERROR</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;</div>
<p>Our PHP code is checking to see if the field &#8216;Criteria&#8217; is available and contains a length. If that fails it will redirect the user to the first search form. Next it checks to see if the length is greater than 5 characters. If it&#8217;s not, it&#8217;ll output a message and stop page execution.</p>
<p>Next, we&#8217;re sanitizing the post. We&#8217;re stripping tags, and making sure the value has no potentially hazardous values (ie: scripting, etc).</p>
<p>Finally, we&#8217;re going to update the search count if the same search criteria has been posted before. Basically, this will increment a counter for that search word. If no rows were affected with the update, that means it&#8217;s not in the database, and we need to insert this new search item. I&#8217;m trying to group these by month/year. I plan on doing weekly reports on the search criteria and sorting by count. This will give me a nice top 10 of popular searches.</p>
<p>You might notice the trigger_error(). I provide custom error handling, if you&#8217;re not doing custom error handling, you can do die() or some other handling to manage the MySQL error. I don&#8217;t recommend ever displaying error messages to the public.</p>
<p>I&#8217;ll follow this post up with part 2, which will include the eBay API query.</p>
<div style='clear:both'></div>

<p>Related posts:<ol><li><a href='http://www.money-code.com/2007/09/using-ebays-api-to-search-auctions-and-return-results/' rel='bookmark' title='Using eBay&#8217;s API to search auctions and return results'>Using eBay&#8217;s API to search auctions and return results</a></li>
<li><a href='http://www.money-code.com/2007/09/simple-script-for-connecting-to-commission-junctions-product-web-service-and-populating-a-local-database/' rel='bookmark' title='Simple script for connecting to Commission Junction&#8217;s Product Web Service and populating a local database'>Simple script for connecting to Commission Junction&#8217;s Product Web Service and populating a local database</a></li>
<li><a href='http://www.money-code.com/2009/08/including-your-wordpress-blogs-to-a-external-website/' rel='bookmark' title='Including your WordPress blogs to a external website'>Including your WordPress blogs to a external website</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.money-code.com/2007/09/capture-search-data-on-your-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
