<?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>Danger Blog &#187; PHP</title>
	<atom:link href="http://danger.com.mx/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://danger.com.mx/blog</link>
	<description>Archivando experiencias</description>
	<lastBuildDate>Tue, 15 May 2012 17:00:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Personalizar la miniatura del link que compartimos en facebook</title>
		<link>http://danger.com.mx/blog/personalizar-la-miniatura-del-link-que-compartimos-en-facebook/</link>
		<comments>http://danger.com.mx/blog/personalizar-la-miniatura-del-link-que-compartimos-en-facebook/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 22:42:17 +0000</pubDate>
		<dc:creator>Danger</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Meta-tags]]></category>
		<category><![CDATA[Xhtml]]></category>

		<guid isPermaLink="false">http://danger.com.mx/blog/?p=119</guid>
		<description><![CDATA[Cuando compartimos un enlace en facebook, este busca alguna imagen y la asocia al mismo. En ocasiones es una imagen que si bien esta en el enlace que estamos compartiendo no es exactamente la imagen que deseamos compartir. Sí se trata de nuestro sitio web, existe una forma de definir la miniatura que facebook deberia [...]]]></description>
			<content:encoded><![CDATA[<a href='http://twitter.com/share?url=http%3A%2F%2Fdanger.com.mx%2Fblog%2F%3Fp%3D119&count=none&related=DangerCheshire&text=Personalizar%20la%20miniatura%20del%20link%20que%20compartimos%20en%20facebook' class='twitter-share-button' data-text='Personalizar la miniatura del link que compartimos en facebook' data-url='http://danger.com.mx/blog/?p=119' data-counturl='http://danger.com.mx/blog/personalizar-la-miniatura-del-link-que-compartimos-en-facebook/' data-count='none' data-via='DangerCheshire' data-related='DangerCheshire'></a><p>Cuando compartimos un enlace en facebook, este busca alguna imagen y la asocia al mismo. En ocasiones es una imagen que si bien esta en el enlace que estamos compartiendo no es exactamente la imagen que deseamos compartir.</p>
<p>Sí se trata de nuestro sitio web, existe una forma de definir la miniatura que facebook deberia de mostrar. Y se trata de la siguiente tag (La misma con la que acostumbramos cargar hojas de estilo css):</p>
<p><strong>&lt;link href=&#8221;imagen.jpg&#8221; rel=&#8221;image_src&#8221; /&gt;</strong></p>
<p>Ahora, que pasa cuando tenemos un sitio donde probablemente usemos re-write, el sitemap es muy amplio, etc. sonara algo latoso agregar manualmente en cada sección.</p>
<p>Podemos hacer lo siguiente, teniendo la logica que en una carpeta llamada &#8220;imagenes&#8221;, tendremos una imagen destinada a cada sección, donde la imagen tendra el nombre de la sección, por ejemplo:</p>
<p>Si estamos en &#8220;sitio.com/galeria.html&#8221; debamos tener una imagen llamada &#8220;galeria.jpg&#8221;, por ejemplo.</p>
<p>Como hacerlo, agregar una función sencilla (PHP):</p>
<p><code class="prettyprint"><br />
function f(){<br />
$t=basename($_SERVER['PHP_SELF']);<br />
$t=explode('.',$t);<br />
echo 'imagenes/'.$t[0].'.jpg';<br />
}<br />
f();<br />
</code></p>
<p>Una vez cargado esto en todas nuestras paginas, que bien podria ser junto con el archivo de conexion a base de datos o encabezados&#8230; el tag quedaria asi:</p>
<p><strong>&lt;link href=&#8221;&lt;? f(); ?&gt;&#8221; rel=&#8221;image_src&#8221; /&gt;</strong></p>
<p>Pruebenlo y, Tan! tan!.</p>
]]></content:encoded>
			<wfw:commentRss>http://danger.com.mx/blog/personalizar-la-miniatura-del-link-que-compartimos-en-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ordenar por fechas en campos varchar</title>
		<link>http://danger.com.mx/blog/ordenas-por-fechas-en-campos-varchar/</link>
		<comments>http://danger.com.mx/blog/ordenas-por-fechas-en-campos-varchar/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 13:50:55 +0000</pubDate>
		<dc:creator>Danger</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://danger.com.mx/blog/?p=89</guid>
		<description><![CDATA[Sí acostumbras utilizar un campo VARCHAR en mysql, para guardar fechas. Y posteriormente quieres ordenar los resultados de tus SELECT&#8217;s en base al mismo campo, podriamos hacerlo de la siguiente manera. ( Donde fecha tiene la siguiente nomenclatura: d.m.Y ) SELECT * FROM `tabla` ORDER BY STR_TO_DATE(fecha, \'%d.%m.%Y\') DESC Y sigues jugando con ASC, DESC, [...]]]></description>
			<content:encoded><![CDATA[<a href='http://twitter.com/share?url=http%3A%2F%2Fdanger.com.mx%2Fblog%2F%3Fp%3D89&count=none&related=DangerCheshire&text=Ordenar%20por%20fechas%20en%20campos%20varchar' class='twitter-share-button' data-text='Ordenar por fechas en campos varchar' data-url='http://danger.com.mx/blog/?p=89' data-counturl='http://danger.com.mx/blog/ordenas-por-fechas-en-campos-varchar/' data-count='none' data-via='DangerCheshire' data-related='DangerCheshire'></a><p>Sí acostumbras utilizar un campo VARCHAR en mysql, para guardar fechas. Y posteriormente quieres ordenar los resultados de tus SELECT&#8217;s en base al mismo campo, podriamos hacerlo de la siguiente manera. ( Donde fecha tiene la siguiente nomenclatura: d.m.Y )</p>
<p><code class="prettyprint"><br />
SELECT * FROM `tabla` ORDER BY STR_TO_DATE(fecha, \'%d.%m.%Y\') DESC<br />
</code></p>
<p>Y sigues jugando con ASC, DESC, WHERE, LIMIT..</p>
<p>Espero les sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://danger.com.mx/blog/ordenas-por-fechas-en-campos-varchar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizando sentencias a mysql</title>
		<link>http://danger.com.mx/blog/optimizando-sentencias-a-mysql/</link>
		<comments>http://danger.com.mx/blog/optimizando-sentencias-a-mysql/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 23:04:01 +0000</pubDate>
		<dc:creator>Danger</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Clase]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[POO]]></category>

		<guid isPermaLink="false">http://danger.com.mx/blog/?p=75</guid>
		<description><![CDATA[Voy a mostrar un ejemplo de como optimizar tus consultas a una base de datos mysql. Para esto trabajaremos un clase en php muy sencilla. Esta clase nos permitira crear desde luego un objeto y reutilizar los resultados de un select. De igual manera podremos ahorrar algunas lineas de codigo en los bucles, cosa que [...]]]></description>
			<content:encoded><![CDATA[<a href='http://twitter.com/share?url=http%3A%2F%2Fdanger.com.mx%2Fblog%2F%3Fp%3D75&count=none&related=DangerCheshire&text=Optimizando%20sentencias%20a%20mysql' class='twitter-share-button' data-text='Optimizando sentencias a mysql' data-url='http://danger.com.mx/blog/?p=75' data-counturl='http://danger.com.mx/blog/optimizando-sentencias-a-mysql/' data-count='none' data-via='DangerCheshire' data-related='DangerCheshire'></a><p>Voy a mostrar un ejemplo de como optimizar tus consultas a una base de datos mysql. Para esto trabajaremos un clase en php muy sencilla.</p>
<p>Esta clase nos permitira crear desde luego un objeto y reutilizar los resultados de un select. De igual manera podremos ahorrar algunas lineas de codigo en los bucles, cosa que en lo personal me parece latoso.</p>
<p>A continuación un idea:</p>
<p><code class="prettyprint"><br />
class DMysql {<br />
	// Clase para optimizar consultas a mysql<br />
	// Por Daniel Gerardo Sánchez<br />
	// www.danger.com.mx - dangercito@hotmail.com - @DangerCheshire<br />
	var $con;<br />
	var $bd;<br />
	var $msg;</p>
<p>	function conexion($host,$db,$user,$pass){<br />
		$this->bd = $db;<br />
		if($this->con = mysql_connect($host,$user,$pass)){<br />
			if(mysql_select_db($db, $this->con)){<br />
				$this->msg = 'Se conecto.';<br />
			}else{<br />
				$this->msg = 'No se pudo conectar.';<br />
			}<br />
		}else{<br />
			$this->msg = 'No conecto al servidor.';<br />
		}<br />
	}</p>
<p>	var $rows;<br />
	var $select;<br />
	function select($s){<br />
		$q = mysql_query($s,$this->con);<br />
		$this->rows = mysql_num_rows($q);<br />
		$this->select = '';<br />
		for($i=1;$i<=$this->rows;$i++){<br />
			$this->select[$i] = mysql_fetch_array($q);<br />
		}<br />
		return $this->rows;<br />
	}</p>
<p>	function sql($s){<br />
		$q = mysql_query($s,$this->con);<br />
	}<br />
}<br />
</code></p>
<p>Partiendo de esta idea de clase, podriamos hacer la impresión de un select, de la siguiente manera:</p>
<p><code class="prettyprint"><br />
// Quiza esto lo jalamos desde inc..<br />
include('DMysql.php');<br />
$a = new DMysql();<br />
$a->conexion('localhost','db','user','pass');<br />
// End</p>
<p>// Aquí seria lo productivo de la clase<br />
for($i=1;$i<=$a->select('SELECT * FROM `tabla`');$i++){<br />
	echo $a->select[$i]['campo'].'<br />';<br />
}</p>
<p>// Para todo lo que no sea select<br />
$a->sql('..sentencia..');<br />
</code></p>
<p>Y listo, de esta manera tendriamos todo mas limpio, mas organizado y facil de mantener. Espero les sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://danger.com.mx/blog/optimizando-sentencias-a-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unir resultados de dos o mas tablas</title>
		<link>http://danger.com.mx/blog/unir-resultados-de-dos-o-mas-tablas/</link>
		<comments>http://danger.com.mx/blog/unir-resultados-de-dos-o-mas-tablas/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 20:58:25 +0000</pubDate>
		<dc:creator>Danger</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://danger.com.mx/blog/?p=71</guid>
		<description><![CDATA[El detalle que surge es cuando quieres unir el resultado de dos o mas tablas. Por ejemplo, en mi caso tengo una base de datos para newsletter, en cada tabla almaceno contactos con diferente estructura pero con dos campos en comun; &#8220;nombre y correo&#8221;. Sí quisieramos mostrar un solo listado, sin hacer un bucle diferente [...]]]></description>
			<content:encoded><![CDATA[<a href='http://twitter.com/share?url=http%3A%2F%2Fdanger.com.mx%2Fblog%2F%3Fp%3D71&count=none&related=DangerCheshire&text=Unir%20resultados%20de%20dos%20o%20mas%20tablas' class='twitter-share-button' data-text='Unir resultados de dos o mas tablas' data-url='http://danger.com.mx/blog/?p=71' data-counturl='http://danger.com.mx/blog/unir-resultados-de-dos-o-mas-tablas/' data-count='none' data-via='DangerCheshire' data-related='DangerCheshire'></a><p>El detalle que surge es cuando quieres unir el resultado de dos o mas tablas.</p>
<p>Por ejemplo, en mi caso tengo una base de datos para newsletter, en cada tabla almaceno contactos con diferente estructura pero con dos campos en comun; &#8220;nombre y correo&#8221;.</p>
<p>Sí quisieramos mostrar un solo listado, sin hacer un bucle diferente en cada consulta, ni escribir mas lineas de codigo, mas rapida, y SIN REGISTROS REPETIDOS&#8230; Seria de la siguiente manera;</p>
<p><code class="prettyprint"><br />
SELECT `nombre`,`correo` FROM `tabla1` UNION DISTINCT<br />
SELECT `nombre`,`correo` FROM `tabla2` UNION DISTINCT<br />
SELECT `nombre`,`correo` FROM `tabla3`<br />
</code></p>
<p>Tan sencillo como eso!.</p>
]]></content:encoded>
			<wfw:commentRss>http://danger.com.mx/blog/unir-resultados-de-dos-o-mas-tablas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If y elseif cortos en php</title>
		<link>http://danger.com.mx/blog/if-y-elseif-cortos-en-php/</link>
		<comments>http://danger.com.mx/blog/if-y-elseif-cortos-en-php/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 17:36:46 +0000</pubDate>
		<dc:creator>Danger</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://danger.com.mx/blog/?p=66</guid>
		<description><![CDATA[Sí tuvieramos algo como: for($i=0;$i]]></description>
			<content:encoded><![CDATA[<a href='http://twitter.com/share?url=http%3A%2F%2Fdanger.com.mx%2Fblog%2F%3Fp%3D66&count=none&related=DangerCheshire&text=If%20y%20elseif%20cortos%20en%20php' class='twitter-share-button' data-text='If y elseif cortos en php' data-url='http://danger.com.mx/blog/?p=66' data-counturl='http://danger.com.mx/blog/if-y-elseif-cortos-en-php/' data-count='none' data-via='DangerCheshire' data-related='DangerCheshire'></a><p>Sí tuvieramos algo como:</p>
<p><code class="prettyprint"><br />
for($i=0;$i<=10;$i++){<br />
     if($i==9){<br />
          $res = true;<br />
     }else{<br />
          $res = false;<br />
     }<br />
}<br />
</code></p>
<p>Podriamos optimizarlo un poco de la siguiente manera:</p>
<p><code class="prettyprint"><br />
for($i=0;$i<=10;$i++){<br />
     $res = ($i==9) ? true : false;<br />
}<br />
</code></p>
<p>Listo!</p>
]]></content:encoded>
			<wfw:commentRss>http://danger.com.mx/blog/if-y-elseif-cortos-en-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Acceso denegado al pasar variable $_GET[&#039;&#039;]</title>
		<link>http://danger.com.mx/blog/acceso-denegado-al-pasar-variable-get/</link>
		<comments>http://danger.com.mx/blog/acceso-denegado-al-pasar-variable-get/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 19:04:33 +0000</pubDate>
		<dc:creator>Danger</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://danger.com.mx/blog/?p=22</guid>
		<description><![CDATA[Hace pocos días estuve experimentando con un proyecto de forma local, utilizando wamp. Cuando subi el script al servidor en internet me mostro un error &#8220;Acceso Denegado.&#8221;, me puse a investigar y la verdad no encontre el porque me estaba pasando esto, enseguida me percate del problema. Como ejemplo les pondre el siguiente codigo: echo [...]]]></description>
			<content:encoded><![CDATA[<a href='http://twitter.com/share?url=http%3A%2F%2Fdanger.com.mx%2Fblog%2F%3Fp%3D22&count=none&related=DangerCheshire&text=Acceso%20denegado%20al%20pasar%20variable%20%24_GET%5B%26%23039%3B%26%23039%3B%5D' class='twitter-share-button' data-text='Acceso denegado al pasar variable $_GET[&#039;&#039;]' data-url='http://danger.com.mx/blog/?p=22' data-counturl='http://danger.com.mx/blog/acceso-denegado-al-pasar-variable-get/' data-count='none' data-via='DangerCheshire' data-related='DangerCheshire'></a><p>Hace pocos días estuve experimentando con un proyecto de forma local, utilizando wamp.</p>
<p>Cuando subi el script al servidor en internet me mostro un error &#8220;Acceso Denegado.&#8221;, me puse a investigar y la verdad no encontre el porque me estaba pasando esto, enseguida me percate del problema. Como ejemplo les pondre el siguiente codigo:</p>
<p><code class="prettyprint"><br />
echo 'Imprimir url: '.$_GET['url'];<br />
</code></p>
<p>Supongo que el host tiene algun parametro que aun desconozco cual sea (pnp.ini se me ocurre) y te manda el mensaje cuando le pasas por GET algo como &#8220;http://www.danger.com.mx&#8221;.</p>
<p>Cabe mencionar que el envio lo hacia con JQuery, algo parecido a lo siguiente:</p>
<p><code class="prettyprint"><br />
...<br />
$('#Contenedor').load('carga.php?url=http://www.danger.com.mx');<br />
...<br />
</code></p>
<p>No me espere a que me respondieran en foros ó a martirizarme en google sin una respuesta. Asi que probe enviandolo como post. Quedo de la siguiente manera:</p>
<p><code class="prettyprint"><br />
$.post('carga.php?varget=valor',$('#Form').serialize(),function(data){<br />
 $('#Contenedor').html(data);}<br />
);<br />
</code></p>
<p>Asi pase una variable GET y pues el resto en POST, ya que las enviaba al hacer un onSubmit.</p>
<p>Y problema resuelto. Ojala les sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://danger.com.mx/blog/acceso-denegado-al-pasar-variable-get/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

