<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Оптимизация кода [PHP]]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=28260&amp;type=atom" />
	<updated>2013-05-20T07:07:24Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=28260</id>
		<entry>
			<title type="html"><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=346406#p346406" />
			<content type="html"><![CDATA[<p>огромное спасибо <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[skyinfo]]></name>
				<uri>https://linuxforum.ru/profile.php?id=22203</uri>
			</author>
			<updated>2013-05-20T07:07:24Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=346406#p346406</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=346394#p346394" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2013-05-20T04:56:54Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=346394#p346394</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=346377#p346377" />
			<content type="html"><![CDATA[<p>с ориентируйте, может примеры какие нить или ссылки?</p>]]></content>
			<author>
				<name><![CDATA[skyinfo]]></name>
				<uri>https://linuxforum.ru/profile.php?id=22203</uri>
			</author>
			<updated>2013-05-19T19:56:25Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=346377#p346377</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=346190#p346190" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2013-05-18T10:06:51Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=346190#p346190</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=346186#p346186" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[skyinfo]]></name>
				<uri>https://linuxforum.ru/profile.php?id=22203</uri>
			</author>
			<updated>2013-05-18T09:37:06Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=346186#p346186</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оптимизация кода [PHP]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=346185#p346185" />
			<content type="html"><![CDATA[<p>Если можно опишите код. Какую задачу он выполняет ?</p>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2013-05-18T09:16:01Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=346185#p346185</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Оптимизация кода [PHP]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=346115#p346115" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[skyinfo]]></name>
				<uri>https://linuxforum.ru/profile.php?id=22203</uri>
			</author>
			<updated>2013-05-17T08:38:26Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=346115#p346115</id>
		</entry>
</feed>
