<?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>AeroStyle &#187; MySQL</title>
	<atom:link href="http://aerostyle.net.ua/category/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://aerostyle.net.ua</link>
	<description>Бібліотека корисної інформації по веб-технологіям</description>
	<lastBuildDate>Sun, 08 Aug 2010 16:49:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Числа, дати, поля&#8230; &#8211; сьогодні трохи про MySQL</title>
		<link>http://aerostyle.net.ua/2009/10/16/%d1%87%d0%b8%d1%81%d0%bb%d0%b0-%d0%b4%d0%b0%d1%82%d0%b8-%d0%bf%d0%be%d0%bb%d1%8f-%d1%81%d1%8c%d0%be%d0%b3%d0%be%d0%b4%d0%bd%d1%96-%d1%82%d1%80%d0%be%d1%85%d0%b8-%d0%bf%d1%80%d0%be-mysql/</link>
		<comments>http://aerostyle.net.ua/2009/10/16/%d1%87%d0%b8%d1%81%d0%bb%d0%b0-%d0%b4%d0%b0%d1%82%d0%b8-%d0%bf%d0%be%d0%bb%d1%8f-%d1%81%d1%8c%d0%be%d0%b3%d0%be%d0%b4%d0%bd%d1%96-%d1%82%d1%80%d0%be%d1%85%d0%b8-%d0%bf%d1%80%d0%be-mysql/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 21:36:11 +0000</pubDate>
		<dc:creator>Цінитель</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://aerostyle.net.ua/?p=106</guid>
		<description><![CDATA[Бази даних: MySQL, PostgreSQL, Oracle&#8230;
-  з резюме пересічного веб-программера&#8230;

Специфіка створення веб-сайтів на сьогоднішній день така, що досконально вивчати тонкощі СУБД потреби немає. Вистачає і &#8220;вершків&#8221;. Вивчив запит на вибірку, вставку, оновлення &#8211; і сміливо можна переписувати пункт &#8220;Бази даних&#8221;  у власному резюме. Не те що б я це засуджував &#8211; у самого знання [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Бази даних: MySQL, PostgreSQL, Oracle&#8230;<br />
-  з резюме пересічного веб-программера&#8230;
</p></blockquote>
<p>Специфіка створення веб-сайтів на сьогоднішній день така, що досконально вивчати тонкощі СУБД потреби немає. Вистачає і &#8220;вершків&#8221;. Вивчив запит на вибірку, вставку, оновлення &#8211; і сміливо можна переписувати пункт &#8220;Бази даних&#8221;  у власному резюме. Не те що б я це засуджував &#8211; у самого знання по MySQL поки що &#8220;базові&#8221;. Проблема в іншому: нахапавшись вершків, більшість просто перестає прагнути вчитись далі. Зрештою, в кожного свій шлях, а я хотів би навести кілька простих та корисних речей по роботі зв&#8217;язки PHP+MySQL</p>
<p style="text-align: right;"><strong>Робота з датою<br />
</strong></p>
<p>РНР зберігає дату в форматі unix timestamp, натомість MySQL використовує формат DATETIME, тобто представлення дати у вигляді YYYY-MM-DD HH:MM:SS (2006-12-25 13:43:15)<br />
Щоб коректно працювати з датою і часом потрібно використовувати наступні перетворення:</p>
<pre class="brush: php;">
$mysqldate = date( ‘Y-m-d H:i:s’, $phpdate ); //Форматує системну дату/час використовуючи мітку часу, задану аргументом $phpdate
$phpdate = strtotime( $mysqldate ); //перетворює текстове представлення дати в мітку часу Юнікс
</pre>
<p>Звичайно, можна зберігати дату в БД одразу в форматі <strong>unix timestamp</strong>, використовуючи якесь числове поле, але в цьому випадку функції MySQL по роботі з часом і датою будуть недоступні.<br />
Вивести сьoгоднішню дату в MySQL &#8211; NOW()<br />
Вивести сьoгоднішню дату в РНР в форматі <strong>unix timestamp</strong> &#8211;  strtotime(’now’) або date(’U&#8217;)</p>
<p style="text-align: right;"><strong>Скопіювати поле таблиці<br />
</strong></p>
<p>Звучить до смішного просто, але коли я не знайшов такої операції в PHPMyAdmin і вирішив зробити це діло &#8220;вчручну&#8221;, то &#8230; виникла певна пауза :)<br />
Отже потрібно:<br />
<strong>ALTER TABLE `table_name` ADD `new_field` TEXT NOT NULL AFTER `some_existing field` ;</strong> &#8211; створюємо нове поле new_field після існуючого поля some_existing field<br />
<strong>UPDATE `table_name` SET `new_field` = `some_existing field`;</strong> &#8211; копіюємо всі значення з одного поля в інше.<br />
Щоб скопіювати всю таблицю:<br />
<strong>create table my_table_copy (select * from my_table)</strong><br />
(в цьому випадку не копіюється інформація про ключові поля, необхідно ще дописувати коменду <strong>ALTER TABLE `my_table_copy` ADD PRIMARY KEY ( `my_table_copy_id` );</strong>  )<br />
Вставити всі дані із старої таблиці в ПОРОЖНЮ нову:<br />
<strong>insert into my_table_copy (select * from my_table) </strong><br />
Щоб скопіювати частину даних з однієї таблиці в іншу з умовою (офіційний мануал поспішає на допомогу):<br />
UPDATE items,month SET items.price=month.price<br />
WHERE items.id=month.id;</p>
<p style="text-align: right;"><strong>Правильне сортування чисел в текстових полях<br />
</strong></p>
<p>Щоб відсортувати числа  в текстовому полі коректно, а не на зразок 1,10,2 можна використовувати функцію CAST</p>
<pre class="brush: sql;">CAST(data as UNSIGNED) AS new_data
….
ORDER BY new_data</pre>
<p>Ще спосіб: просто написати <strong>ORDER BY data+0</strong><br />
Якщо ж текстове поле містить не тільки числа, а й букви, то попередньо ці букви треба видалити. Приклад:</p>
<pre class="brush: sql;">SELECT CAST(SUBSTRING_INDEX(filename, '_', -1) as unsigned) as file, filename ,caption, photos_id as id FROM photos
WHERE o_id = '555' order by file;</pre>
<p>По суті, у нас тут file використовується як службове поле &#8211; тільки для правильного сортування.</p>
]]></content:encoded>
			<wfw:commentRss>http://aerostyle.net.ua/2009/10/16/%d1%87%d0%b8%d1%81%d0%bb%d0%b0-%d0%b4%d0%b0%d1%82%d0%b8-%d0%bf%d0%be%d0%bb%d1%8f-%d1%81%d1%8c%d0%be%d0%b3%d0%be%d0%b4%d0%bd%d1%96-%d1%82%d1%80%d0%be%d1%85%d0%b8-%d0%bf%d1%80%d0%be-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Отримання інформації про колонки в БД</title>
		<link>http://aerostyle.net.ua/2009/08/03/%d0%be%d1%82%d1%80%d0%b8%d0%bc%d0%b0%d0%bd%d0%bd%d1%8f-%d1%96%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d1%96%d1%97-%d0%bf%d1%80%d0%be-%d0%ba%d0%be%d0%bb%d0%be%d0%bd%d0%ba%d0%b8-%d0%b2-%d0%b1%d0%b4/</link>
		<comments>http://aerostyle.net.ua/2009/08/03/%d0%be%d1%82%d1%80%d0%b8%d0%bc%d0%b0%d0%bd%d0%bd%d1%8f-%d1%96%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d1%96%d1%97-%d0%bf%d1%80%d0%be-%d0%ba%d0%be%d0%bb%d0%be%d0%bd%d0%ba%d0%b8-%d0%b2-%d0%b1%d0%b4/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 17:13:53 +0000</pubDate>
		<dc:creator>Цінитель</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://aerostyle.net.ua/?p=30</guid>
		<description><![CDATA[В тенетах натрапив на цікавий скрипт, що виводить службову інформацію по колонкам таблиці з БД MySQL. Великого прикладного значення скрипт немає &#8211; навряд чи хтось захоче писати другий PHPMyAdmin &#8211; але для експериментів та навчання згодиться.

mysql_connect('localhost:3306', $user, $password)
mysql_select_db(&#34;database&#34;);
$result = mysql_query(&#34;select * from table&#34;)
or die(&#34;Query failed: &#34; . mysql_error());
/* отримуємо дані про колонку*/
$i = 0;
while ($i [...]]]></description>
			<content:encoded><![CDATA[<p>В тенетах натрапив на цікавий скрипт, що виводить службову інформацію по колонкам таблиці з БД MySQL. Великого прикладного значення скрипт немає &#8211; навряд чи хтось захоче писати другий PHPMyAdmin &#8211; але для експериментів та навчання згодиться.</p>
<pre class="brush: php;">
mysql_connect('localhost:3306', $user, $password)
mysql_select_db(&quot;database&quot;);
$result = mysql_query(&quot;select * from table&quot;)
or die(&quot;Query failed: &quot; . mysql_error());
/* отримуємо дані про колонку*/
$i = 0;
while ($i &lt; mysql_num_fields($result)) {
echo &quot;Information for column $i:
\n&quot;;
$meta = mysql_fetch_field($result, $i);
if (!$meta) {
echo &quot;No information available
\n&quot;;
}
echo &quot;
&lt;pre&gt;blob:         $meta-&gt;blob
max_length:   $meta-&gt;max_length
multiple_key: $meta-&gt;multiple_key
name:         $meta-&gt;name
not_null:     $meta-&gt;not_null
numeric:      $meta-&gt;numeric
primary_key:  $meta-&gt;primary_key
table:        $meta-&gt;table
type:         $meta-&gt;type
unique_key:   $meta-&gt;unique_key
unsigned:     $meta-&gt;unsigned
zerofill:     $meta-&gt;zerofill&lt;/pre&gt;
&quot;;
$i++;
}
mysql_free_result($result);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aerostyle.net.ua/2009/08/03/%d0%be%d1%82%d1%80%d0%b8%d0%bc%d0%b0%d0%bd%d0%bd%d1%8f-%d1%96%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d1%96%d1%97-%d0%bf%d1%80%d0%be-%d0%ba%d0%be%d0%bb%d0%be%d0%bd%d0%ba%d0%b8-%d0%b2-%d0%b1%d0%b4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

