<?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>Блог маленького, но очень отважного программиста &#187; MySQL</title>
	<atom:link href="http://xo66ut.ru/archives/tag/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://xo66ut.ru</link>
	<description>PHP, MySQL, Javascript, JQuery, ExtJS, UML, и другие интернетости...…</description>
	<lastBuildDate>Tue, 04 Oct 2011 08:40:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>codelifehack: Частично скрываем email&#8217;ы, которые получаем из БД</title>
		<link>http://xo66ut.ru/archives/625</link>
		<comments>http://xo66ut.ru/archives/625#comments</comments>
		<pubDate>Wed, 07 Sep 2011 12:53:59 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[codelifehack]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=625</guid>
		<description><![CDATA[Времени писать полноценные посты практически нет, ввиду большой загруженности проектами, поэтому буду пробовать новый формат, который я решил назвать codelifehack, это всевозможные полезные советы в областях и языках программирования с которыми мне приходится работать.
Итак первый.
Частично скрываем email&#8217;ы, которые получаем из БД.
Что делает?
Скрывает часть символов в email, чтобы нельзя было его использовать в плохих целях.
Пример.

SELECT
 INSERT(user_info.email, [...]]]></description>
			<content:encoded><![CDATA[<p>Времени писать полноценные посты практически нет, ввиду большой загруженности проектами, поэтому буду пробовать новый формат, который я решил назвать codelifehack, это всевозможные полезные советы в областях и языках программирования с которыми мне приходится работать.<br />
Итак первый.</p>
<h2>Частично скрываем email&#8217;ы, которые получаем из БД.</h2>
<h3>Что делает?</h3>
<p>Скрывает часть символов в email, чтобы нельзя было его использовать в плохих целях.</p>
<h3>Пример.</h3>
<pre class="brush: sql;">
SELECT
 INSERT(user_info.email, 3, 4, '...') AS modif_email,
 user_info.name,
 user_info.surname
 FROM
 user_info
</pre>
<p>Нас здесь интересует строчка:</p>
<pre class="brush: sql;">
SELECT
 INSERT(user_info.email, 3, 4, '...') AS modif_email,
</pre>
<p>Функция (именно функция, есть еще другой INSERT) INSERT заменяет 4 символа начиная с третьего на символы &#8220;&#8230;&#8221; (три точки) в строке user_info.email. Краткое описание функции INSERT(str,pos,len,newstr)</p>
<h3>Возможная проблема при использовании.</h3>
<p>Наша замена может попасть на символы которые при замене выдадут полноценный email, пока коллизий не выявлено.</p>
<h3>Применение.</h3>
<p>Нам нужно построить рейтинг пользователей, но по понятным причинам мы не можем показывать на сайте email&#8217;ы наших пользователей.<br />
Нам нужно показать что мы знаем email пользователя (который оставил предложение о продаже на сайте) и при определенных условия мы готовы его показать.<br />
Ну и конечно же ваш вариант.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=625&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/625/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Форматирование даты средствами Zend_Framework и не только.</title>
		<link>http://xo66ut.ru/archives/554</link>
		<comments>http://xo66ut.ru/archives/554#comments</comments>
		<pubDate>Mon, 10 Jan 2011 17:11:27 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Программирование на PHP]]></category>
		<category><![CDATA[Zend_Date]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=554</guid>
		<description><![CDATA[
В любом нормальном проекте не избежать форматирования даты, чтобы не тратить время на реализацию своих методов и функций я хочу рассказать как быстро отформатировать дату средствами MySQL и Zend_Date.
Форматирование с помощью Zend_Date.
Для быстрого форматирования даты при выводе ее пользователю я предлагаю создать помощник вида.
Для этого создаем простой viewHelper (application/view/helpers), я назвал его DateHelper:

&#60;?php
/**
 *
 * [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><img class="aligncenter size-full wp-image-491" style="border: 0pt none;" title="zend_framework" src="http://xo66ut.ru/wp-content/uploads/2010/08/zend_framework2.jpg" alt="zend_framework" width="282" height="174" /></div>
<p>В любом нормальном проекте не избежать форматирования даты, чтобы не тратить время на реализацию своих методов и функций я хочу рассказать как быстро отформатировать дату средствами MySQL и Zend_Date.</p>
<h2>Форматирование с помощью Zend_Date.</h2>
<p>Для быстрого форматирования даты при выводе ее пользователю я предлагаю создать помощник вида.<br />
Для этого создаем простой viewHelper (application/view/helpers), я назвал его <strong>DateHelper</strong>:</p>
<pre class="brush: php;">
&lt;?php
/**
 *
 * @author Roman
 * @version
 */
require_once 'Zend/View/Interface.php';
/**
 * DateHelper helper
 *
 * @uses viewHelper Zend_View_Helper
 */
class Zend_View_Helper_DateHelper
{
    /**
     * @var Zend_View_Interface
     */
    public $view;
    /**
     *
     */
    public function dateHelper($date_value, $format)
    {
        $locale = Zend_Registry::get('Zend_Locale');
        $date = new Zend_Date($date_value, false, $locale);
        return $date-&gt;toString($format);
    }
    /**
     * Sets the view field
     * @param $view Zend_View_Interface
     */
    public function setView (Zend_View_Interface $view)
    {
        $this-&gt;view = $view;
    }
}
</pre>
<p>Теперь мы можем использовать его в view скрипте следующим образом:</p>
<pre class="brush: php;">
$unformated_data = &quot;2011-01-30 12:21:11&quot;;
$this-&gt;dateHelper($unformated_data, &quot;dd MMMM&quot;); ?&gt;
</pre>
<p>Дата будет отформатирована в &#8220;<em>30 January</em>&#8220;. Для того чтобы дата выводилась с учетом локали (языка) нужно в файле <strong>Bootstrap.php</strong> добавить метод:</p>
<pre class="brush: php;">
protected function _initLocale()
{
    $locale = new Zend_Locale('ru_RU');
    Zend_Registry::set('Zend_Locale', $locale);
}
</pre>
<p>В данном случае наш помощник вида выведет &#8220;<em>30 января</em>&#8220;. Модификаторы даты можно посмотреть <a href="http://framework.zend.com/manual/1.11/ru/zend.date.constants.html">тут</a>.</p>
<h2>Форматирование средствами СУБД MySQL.</h2>
<p>Если вы получаете дату из базы, то не стоит забывать о встроенном форматировании даты в MySQL и других СУБД.</p>
<pre class="brush: plain;">
DATE_FORMAT('2011-01-30 12:21:11', '%d %M') AS FIELD_1
</pre>
<p>Функция <strong>DATE_FORMAT</strong> вернет нам &#8220;<em>30 January</em>&#8220;, подробнее модификаторы можно посмотреть <a href="http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format">тут </a></p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=554&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/554/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Добавление записей MySQL из одной таблицы в другую</title>
		<link>http://xo66ut.ru/archives/498</link>
		<comments>http://xo66ut.ru/archives/498#comments</comments>
		<pubDate>Sun, 29 Aug 2010 10:16:33 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Refactoring]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=498</guid>
		<description><![CDATA[Хочу написать об очень полезной возможности MySQL, которая очень помогает в рефакторинге старой БД, точнее в переносе данных из старой БД в новую, имеющую другую структуру. В данном случае нам надо вставить в новую таблицу данные, которые мы выбираем из старой.
Давайте создадим для начала две таблицы:

CREATE database testdb;
USE testdb;

CREATE TABLE table1 (id int(10) auto_increment, fname [...]]]></description>
			<content:encoded><![CDATA[<p>Хочу написать об очень полезной возможности MySQL, которая очень помогает в рефакторинге старой БД, точнее в переносе данных из старой БД в новую, имеющую другую структуру. В данном случае нам надо вставить в новую таблицу данные, которые мы выбираем из старой.</p>
<p>Давайте создадим для начала две таблицы:</p>
<pre class="brush: sql;">
CREATE database testdb;
USE testdb;

CREATE TABLE table1 (id int(10) auto_increment, fname varchar(20), lname(20), primary key(id));
CREATE TABLE table2 (id int(10) auto_increment, firstname varchar(20), lastname(20), age int, primary key(id));
</pre>
<p>Теперь добавим немного данных в таблицу для работы:</p>
<pre class="brush: sql;">
INSERT INTO table2 (firstname, lastname, age)
 VALUES
 ('Ivan', 'Ivanov', 12),
 ('Petr', 'Petrov', 13),
 ('Alex', 'Kuznetsov', 39),
 ('Vladimir', 'Ivanov', 42)
</pre>
<p>Теперь мы можем внести во вторую таблицу данные из первой отфильтрованные по <strong>WHERE</strong>, притом обратите внимание вносятся все данные, которые мы выбираем из второй таблицы, то есть запрос <strong>INSERT </strong>повторяется для каждой строчки из второй таблицы.</p>
<pre class="brush: sql;">
INSERT INTO table1 (fname, lname) SELECT firstname, lastname FROM table2 WHERE age &lt;= 39;
</pre>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=498&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/498/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Получить в MySQL имя поля содержащего в себе первичный ключ</title>
		<link>http://xo66ut.ru/archives/232</link>
		<comments>http://xo66ut.ru/archives/232#comments</comments>
		<pubDate>Mon, 08 Feb 2010 13:36:41 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=232</guid>
		<description><![CDATA[Для одного из проектов понадобилось узнать имя поля у таблицы содержащего в себе первичный ключ. Погуглив ничего путного не нашел, ответ нарыл случайно в lists на официальном сайте. Запрос оказался очень интересным, оказывается выборку надо производить из вспомогательных полей самого MySQL.
Запрос для базы с именем db, и таблицы с именем tbl.

SELECT k.column_name
FROM information_schema.table_constraints t
JOIN information_schema.key_column_usage [...]]]></description>
			<content:encoded><![CDATA[<p>Для одного из проектов понадобилось узнать имя поля у таблицы содержащего в себе первичный ключ. Погуглив ничего путного не нашел, ответ нарыл случайно в lists на официальном сайте. Запрос оказался очень интересным, оказывается выборку надо производить из вспомогательных полей самого MySQL.<br />
Запрос для базы с именем <strong>db</strong>, и таблицы с именем <strong>tbl</strong>.</p>
<pre class="brush: sql;">
SELECT k.column_name
FROM information_schema.table_constraints t
JOIN information_schema.key_column_usage k
USING(constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
AND t.table_schema='db'
AND t.table_name='tbl';
</pre>
<p>При желании имя БД можно опустить, но это чревато тем, что можно получить несколько результатов, если есть таблицы с одинаковым именем в разных БД.<br />
<strong><br />
UPD: </strong>Спасибо Максиму, решение намного проще и изящнее.</p>
<pre class="brush: sql;">
SHOW COLUMNS FROM `table` WHERE `key`=’pri’;
</pre>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=232&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/232/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Создание USL-CMS</title>
		<link>http://xo66ut.ru/archives/29</link>
		<comments>http://xo66ut.ru/archives/29#comments</comments>
		<pubDate>Tue, 19 May 2009 12:39:10 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[Программирование на PHP]]></category>
		<category><![CDATA[Создание USL-CMS]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[ООП]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/archives/29</guid>
		<description><![CDATA[Решением коллегиальной комиссии (шутка), было решено создать свою cms систему с доступным (userfriendly) администрированием, работа движется, что получится &#8211; покажет время. В настоящее время над ней работает 3 человека. Собираюсь публиковать здесь важные этапы в развитии системы. В настоящее время интереса заслуживает разве что работа фотогалереи, когда написание этого модуля (а фотогалерея это опциональный модуль [...]]]></description>
			<content:encoded><![CDATA[<p>Решением коллегиальной комиссии (шутка), было решено создать свою cms систему с доступным (userfriendly) администрированием, работа движется, что получится &#8211; покажет время. В настоящее время над ней работает 3 человека. Собираюсь публиковать здесь важные этапы в развитии системы. В настоящее время интереса заслуживает разве что работа фотогалереи, когда написание этого модуля (а фотогалерея это опциональный модуль CMS), будет завершено, думаю написать здесь краткий обзор возможностей.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=29&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/29/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

