<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Оптимизация кода [PHP]]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=28260</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=28260&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Оптимизация кода [PHP]».]]></description>
		<lastBuildDate>Mon, 20 May 2013 07:07:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=346406#p346406</link>
			<description><![CDATA[<p>огромное спасибо <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></description>
			<author><![CDATA[null@example.com (skyinfo)]]></author>
			<pubDate>Mon, 20 May 2013 07:07:24 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=346406#p346406</guid>
		</item>
		<item>
			<title><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=346394#p346394</link>
			<description><![CDATA[<p><a href="http://doc.elcat.kg/MySQL/refman-4.0-ru.html-chapter/extending-mysql.html#adding-functions">http://doc.elcat.kg/MySQL/refman-4.0-ru … -functions</a><br />Посмотрите сдесь.<br />По поисковикам <br /></p><div class="quotebox"><blockquote><p>mysql udf</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (marikk)]]></author>
			<pubDate>Mon, 20 May 2013 04:56:54 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=346394#p346394</guid>
		</item>
		<item>
			<title><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=346377#p346377</link>
			<description><![CDATA[<p>с ориентируйте, может примеры какие нить или ссылки?</p>]]></description>
			<author><![CDATA[null@example.com (skyinfo)]]></author>
			<pubDate>Sun, 19 May 2013 19:56:25 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=346377#p346377</guid>
		</item>
		<item>
			<title><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=346190#p346190</link>
			<description><![CDATA[<p>Мое предложение. </p><p>Создать в mysq функцию&nbsp; которая принимает вашу строку. </p><p>Функция выполняет следующее </p><div class="quotebox"><blockquote><p>если нашли в базе равный sku.<br />3. Если нашли, то обновляем.<br />4. Если прочитали, и не нашли, то добавляем новую запись.</p></blockquote></div><p>А в своей программе вы просто читаете построчно файл и вызываете мускульную функцию.</p><div class="codebox"><pre><code> mysql_query (your_function(&#039;$string&#039;));</code></pre></div><p>Я конечно не профессионал в этом деле. Но по своему скромному опыту программирования скажу, что так не только быстрее но и правильнее.</p>]]></description>
			<author><![CDATA[null@example.com (marikk)]]></author>
			<pubDate>Sat, 18 May 2013 10:06:51 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=346190#p346190</guid>
		</item>
		<item>
			<title><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=346186#p346186</link>
			<description><![CDATA[<p>1. Перед стартом, обнуляем кол-во quantity, если $location = &quot;xp&quot;; или $location1 = &quot;xp1&quot;; если нет, то не трогаем.<br />2. Читаем построчно exel файл, если нашли в базе равный sku.<br />3. Если нашли, то обновляем.<br />4. Если прочитали, и не нашли, то добавляем новую запись.</p><p>Зы. если в двух словах, читаю прайс, сравниваю с базой, если есть - обновляю, если нет - добавляю. Плюс в конце, если кол-во = 0 - отключаем, если &gt;0 включаем.&nbsp; Сделано, это потому, что локейшен может быть xp2, xp3, x4...</p>]]></description>
			<author><![CDATA[null@example.com (skyinfo)]]></author>
			<pubDate>Sat, 18 May 2013 09:37:06 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=346186#p346186</guid>
		</item>
		<item>
			<title><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=346185#p346185</link>
			<description><![CDATA[<p>Если можно опишите код. Какую задачу он выполняет ?</p>]]></description>
			<author><![CDATA[null@example.com (marikk)]]></author>
			<pubDate>Sat, 18 May 2013 09:16:01 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=346185#p346185</guid>
		</item>
		<item>
			<title><![CDATA[Оптимизация кода [PHP]]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=346115#p346115</link>
			<description><![CDATA[<p>Нагромоздил код))) грузит проц. на 100% , обрабатывает 25-30 тыс. строк за 1-1.5 часа.<br />Встал вопрос как оптимизировать код, с чего начать на что обратить внимание? буду благодарен любым советам.<br />Писать на связке php + mysql начал не давно....так что сильно не ругайте (за не структурированость и т.д.), код под спойлером.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>&lt;?php
error_reporting (-1);
set_time_limit (130);
require_once (&#039;excel/excel_reader2.php&#039;);
require_once (&#039;config_db.php&#039;);
$image = &quot;data/new.png&quot;;
$dataupdate = date(&quot;Y-m-d&quot;);
$dataupdate1 = date(&quot;Y-m-d H:i:s&quot;);
$location = &quot;xp&quot;;
$location1 = &quot;xp1&quot;;
$margin = &quot;0.30&quot;;
$roundish = &quot;10&quot;;
$data = new Spreadsheet_Excel_Reader(&quot;price.xls&quot;,false,&quot;UTF-8&quot;);
$data-&gt;setOutputEncoding(&#039;UTF-8&#039;);
//$data-&gt;read(&#039;price.xls&#039;);
//print_r($data);
mysql_connect($db_table_host, $db_user_name, $db_user_pass) or die(&quot;Не удалось подключиться к БД&quot;);
mysql_select_db($db_table_name) or die(&quot;Не удалось подключиться к Базе&quot;);
@mysql_query(&#039;set character_set_client=&quot;utf8&quot;&#039;);
@mysql_query(&#039;set character_set_results=&quot;utf8&quot;&#039;);
@mysql_query(&#039;set collation_connection=&quot;utf8_general_ci&quot;&#039;);

$sql = &quot;UPDATE av_product SET quantity = 0 WHERE location = &#039;&quot;.mysql_real_escape_string($location).&quot;&#039;&quot;;
mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());
$sql = &quot;UPDATE av_product SET quantity = 0 WHERE location = &#039;&quot;.mysql_real_escape_string($location1).&quot;&#039;&quot;;
mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());

$cur_i = 0;
for ($i = 1; $i &lt;= $data-&gt;sheets[1][&#039;numRows&#039;]; $i++) {
     if($data-&gt;sheets[1][&#039;cells&#039;][$i][8] != &quot;&quot;){
    if($cur_i == 0){
$cur_i++;
    }else{
        $sql = &quot;SELECT * FROM av_product WHERE sku = &#039;&quot;.$data-&gt;sheets[1][&#039;cells&#039;][$i][2].&quot;&#039;&quot;;
        $cur_product_query = mysql_query($sql) or die(&#039;Query failed: &#039; . mysql_error());
        $cur_product = mysql_fetch_array($cur_product_query);
if(!is_numeric(trim($data-&gt;sheets[1][&#039;cells&#039;][$i][8])))        
$product_count = 5;
else $product_count = $data-&gt;sheets[1][&#039;cells&#039;][$i][8];
        if($cur_product[&#039;sku&#039;] != &quot;&quot;){

            // обновляем товар
            $sql = &quot;UPDATE av_product SET sku = &#039;&quot;.$data-&gt;sheets[1][&#039;cells&#039;][$i][2].&quot;&#039;, quantity = &#039;&quot;.$product_count.&quot;&#039;, date_available = &#039;&quot;.$dataupdate.&quot;&#039;, cost = &#039;&quot;.$data-&gt;sheets[1][&#039;cells&#039;][$i][7].&quot;&#039;  WHERE sku = &#039;&quot;.$data-&gt;sheets[1][&#039;cells&#039;][$i][2].&quot;&#039;&quot;; 
            mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());
        

        }else{
          $sql = &quot;INSERT INTO av_product (sku, location, cost, quantity, image, date_available, date_added, margin, roundish) VALUES (&#039;&quot;.$data-&gt;sheets[1][&#039;cells&#039;][$i][2].&quot;&#039;, &#039;&quot;.mysql_real_escape_string($location1).&quot;&#039;, &#039;&quot;.$data-&gt;sheets[1][&#039;cells&#039;][$i][7].&quot;&#039;, &#039;&quot;.$product_count.&quot;&#039;, &#039;&quot;.$image.&quot;&#039;, &#039;&quot;.$dataupdate.&quot;&#039;, &#039;&quot;.$dataupdate1.&quot;&#039;, &#039;&quot;.$margin.&quot;&#039;, &#039;&quot;.$roundish.&quot;&#039;)&quot;;
mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());

$last_id = mysql_insert_id();

$sql = &quot;INSERT INTO av_product_description (product_id, language_id, name) VALUES (&#039;&quot;.$last_id.&quot;&#039;, 1, &#039;&quot;.mysql_real_escape_string($data-&gt;sheets[1][&#039;cells&#039;][$i][4]).&quot;&#039;)&quot;;
mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());

//Ровняем seourl
$seo = mysql_insert_id();
$query = &quot;product_id=$seo&quot;;
$keyword = $seo;
$sql = &quot;INSERT INTO av_url_alias (query, keyword) VALUES (&#039;&quot;.$query.&quot;&#039;, &#039;&quot;.$keyword.&quot;&#039;)&quot;;
mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());





                }
    }

     }
}
//Ровняем model = product_id
$sql = &quot;UPDATE av_product SET model = product_id&quot;;
mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());

//Если товар &quot;xp1&quot; и кол-во больше нуля, то включаем товар на сайте.
$sql = &quot;UPDATE av_product SET status = 1 WHERE location = &#039;&quot;.mysql_real_escape_string($location1).&quot;&#039; AND quantity &gt; 0&quot;;
mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());

//Если товар &quot;xp1&quot; и кол-во меньше нуля, то отключаем товар на сайте.&quot;
$sql = &quot;UPDATE av_product SET status = 0 WHERE location = &#039;&quot;.mysql_real_escape_string($location1).&quot;&#039; AND quantity = 0&quot;;
mysql_query($sql) or die(&#039;Ошибка запроса: &#039; . mysql_error());

?&gt;</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (skyinfo)]]></author>
			<pubDate>Fri, 17 May 2013 08:38:26 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=346115#p346115</guid>
		</item>
	</channel>
</rss>
