<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Выводит только 50 записей]]></title>
		<link>https://forum.readyscript.ru/topic/1008/vyvodit-tolko-50-zapisei/</link>
		<atom:link href="https://forum.readyscript.ru/feed/rss/topic/1008/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Выводит только 50 записей».]]></description>
		<lastBuildDate>Thu, 15 Dec 2016 08:53:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5600/#p5600</link>
			<description><![CDATA[<p>Ну разберитесь в чём дело. Это вопрос общего программирования. Вы же специалист. Посмотрите, что у Вас массивах, потестируйте, отследите, проанализируйте. В данном случае всё зависит только от Вас и Ваших данных.</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 15 Dec 2016 08:53:48 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5600/#p5600</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5598/#p5598</link>
			<description><![CDATA[<p>Вынес вот это за пределы цикла<br /></p><div class="codebox"><pre><code>$user_ids = array();
                foreach($itemslist as $order){
                    if (!in_array($order[&#039;user_id&#039;], $user_ids)){ //Проверим если, ли уже в массиве такой id
                        $user_ids[] = $order[&#039;user_id&#039;];
                     }
                }

                $addreses_by_users = \RS\Orm\Request::make()
                 -&gt;from(new \Shop\Model\Orm\Address())
                -&gt;whereIn(&#039;user_id&#039;, $user_ids)
                -&gt;objects(null, &#039;user_id&#039;, true); 

                foreach($orders_data as &amp;$order){
                    $order[&#039;addresses&#039;] = $addreses_by_users[$order[&#039;user_id&#039;]];
                }
                </code></pre></div><p>после всего этого вставляю var_dump($user_ids); получаю array(0) { } и var_dump($itemslist); получаю array(0) { }</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 15 Dec 2016 08:42:20 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5598/#p5598</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5597/#p5597</link>
			<description><![CDATA[<p>Вынесите за пределы цикла и смотрите что у Вас в <strong>$itemslist</strong>. Проследите что происходит <strong>$user_ids</strong></p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 15 Dec 2016 08:27:34 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5597/#p5597</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5595/#p5595</link>
			<description><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Вы забыли <strong>&amp;</strong></p></blockquote></div><p>По прежнему выводит один адресс.</p><div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>И судя по Вашему коду у Вас как частичное получение заказов, так и остальные данные заключены в цикл, который догружает данные. А в цикле должен быть только код получающий заказы, а уже далее должно происходить и подгрузка пользователей и адресов.</p></blockquote></div><p>если я выношу код, за пределы цикла, то получаю ошибку <br />Исключение - &quot;SELECT * FROM `readylocal`.`tzte_order_address` WHERE `user_id` IN ()You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#039;)&#039; at line 1&quot;<br /></p><div class="codebox"><pre><code>$user_ids = array();
                foreach($itemslist as $order){
                    if (!in_array($order[&#039;user_id&#039;], $user_ids)){ //Проверим если, ли уже в массиве такой id
                        $user_ids[] = $order[&#039;user_id&#039;];
                     }
                }

                $addreses_by_users = \RS\Orm\Request::make()
                 -&gt;from(new \Shop\Model\Orm\Address())
                -&gt;whereIn(&#039;user_id&#039;, $user_ids)
                -&gt;objects(null, &#039;user_id&#039;, true); 

                foreach($orders_data as &amp;$order){
                    $order[&#039;addresses&#039;] = $addreses_by_users[$order[&#039;user_id&#039;]];
                }
                var_dump($addreses_by_users[$order[&#039;user_id&#039;]]);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 15 Dec 2016 07:51:51 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5595/#p5595</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5594/#p5594</link>
			<description><![CDATA[<p>Вы забыли <strong>&amp;</strong></p><div class="codebox"><pre><code>foreach($orders_data as &amp;$order){
      $order[&#039;addresses&#039;] = $addreses_by_users[$order[&#039;user_id&#039;]];
}</code></pre></div><p>И судя по Вашему коду у Вас как частичное получение заказов, так и остальные данные заключены в цикл, который догружает данные. А в цикле должен быть только код получающий заказы, а уже далее должно происходить и подгрузка пользователей и адресов.</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 15 Dec 2016 07:34:35 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5594/#p5594</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5593/#p5593</link>
			<description><![CDATA[<p>Вы меня не поняли немного. Там два заказа от разных пользователей, получается и адресов должно быть выведено, от каждого заказа свой адрес (т.е. 2 разных), а выводит только 1</p><p>Вот&nbsp; так это все выглядит<br /></p><div class="codebox"><pre><code>foreach($itemslist as $order){
                    /**
                    * @var \Shop\Model\Orm\Order $order
                    */   
                    //Здесь записываем сведения в какой нибудь промежуточный массив Например $order_data и плюсуем его в $orders_data
                    $order_data = array(
                        &#039;order_num&#039; =&gt; $order[&#039;order_num&#039;],
                        &#039;new_cost&#039; =&gt; $order[&#039;new_cost&#039;],
                        &#039;userfields&#039; =&gt; $order[&#039;userfields_arr&#039;],
                        &#039;user_phone&#039; =&gt; $order[&#039;user_phone&#039;],
                        &#039;user_fio&#039; =&gt; $order[&#039;user_fio&#039;],
                        &#039;id&#039; =&gt; $order[&#039;id&#039;],
                        &#039;user_id&#039; =&gt; $order[&#039;user_id&#039;],
                        &#039;phone&#039; =&gt; $order[&#039;phone&#039;],
                        &#039;name&#039; =&gt; $order[&#039;name&#039;],
                        //и т.д.
                    );
                    $orders_data[] = $order_data;

                }               

                $i++;
                $offset += $limit;  

                $user_ids = array();
                foreach($itemslist as $order){
                    if (!in_array($order[&#039;user_id&#039;], $user_ids)){ //Проверим если, ли уже в массиве такой id
                        $user_ids[] = $order[&#039;user_id&#039;];
                     }
                }

                $addreses_by_users = \RS\Orm\Request::make()
                 -&gt;from(new \Shop\Model\Orm\Address())
                -&gt;whereIn(&#039;user_id&#039;, $user_ids)
                -&gt;objects(null, &#039;user_id&#039;, true); 

                foreach($orders_data as $order){
                    $order[&#039;addresses&#039;] = $addreses_by_users[$order[&#039;user_id&#039;]];
                }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 15 Dec 2016 07:26:40 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5593/#p5593</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5592/#p5592</link>
			<description><![CDATA[<p>Если Вы используете<br /></p><div class="codebox"><pre><code>$addreses_by_users = \RS\Orm\Request::make()
       -&gt;from(new \Shop\Model\Orm\Address())
       -&gt;whereIn(&#039;user_id&#039;, массив с id нужных пользователей который Вы уже получили)
       -&gt;objects(null, &#039;user_id&#039;, true);</code></pre></div><p>То в данном случае привяжется несколько адресов к одному пользователю. Попробуйте.</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 15 Dec 2016 07:21:13 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5592/#p5592</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5589/#p5589</link>
			<description><![CDATA[<p>Но так мы получим только один адрес?</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 15 Dec 2016 07:13:35 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5589/#p5589</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5581/#p5581</link>
			<description><![CDATA[<p>Ну у Вас в массиве адресов все адреса распделены так, что у них есть общий ключ означающий id пользователя.<br />Соответственно, если перебрать массив заказов, где есть user_id, то из массива адресов адреса для конкретного пользователя можно достать по ключу пользователя. К примеру:</p><div class="codebox"><pre><code>foreach($orders_data as &amp;$order){
     $order[&#039;addresses&#039;] = $addreses_by_users[$order[&#039;user_id&#039;]];
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 14 Dec 2016 13:52:48 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5581/#p5581</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5580/#p5580</link>
			<description><![CDATA[<p>Дак это все сделано же уже, как состыковать то их. Снова дуаеощшт делать?</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 14 Dec 2016 12:24:41 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5580/#p5580</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5579/#p5579</link>
			<description><![CDATA[<p>Я здесь не вижу адресов, это id пользователей из Ваших заказов. Вам надо сделать запрос на получение адресов как я и писал ранее.<br /></p><div class="codebox"><pre><code>$addreses_by_users = \RS\Orm\Request::make()
       -&gt;from(new \Shop\Model\Orm\Address())
       -&gt;whereIn(&#039;user_id&#039;, массив с id нужных пользователей который Вы уже получили)
       -&gt;objects(null, &#039;user_id&#039;, true);</code></pre></div><p>Далее перебрать массив с заказами и состыковать полученные адреса.</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 14 Dec 2016 11:49:16 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5579/#p5579</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5578/#p5578</link>
			<description><![CDATA[<p>вот это сделал, я выше не то указал.<br />Вто адреса получил, дальше то как их состыковать?<br /></p><div class="codebox"><pre><code>string(11) &quot;-2147483648&quot;
string(10) &quot;-698880924&quot;
string(4) &quot;1156&quot;
string(4) &quot;2022&quot;
string(4) &quot;1130&quot;
string(4) &quot;1373&quot;
string(4) &quot;1741&quot;
string(11) &quot;-1327942436&quot;
string(11) &quot;-1007174388&quot;
string(11) &quot;-2097266773&quot;
string(4) &quot;1337&quot;
string(4) &quot;1776&quot;
string(10) &quot;-690740807&quot;
string(11) &quot;-1510144173&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 14 Dec 2016 11:04:58 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5578/#p5578</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5577/#p5577</link>
			<description><![CDATA[<p>Да</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 14 Dec 2016 10:39:11 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5577/#p5577</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5576/#p5576</link>
			<description><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Далее в получившемся массиве адресов пройтись по нему и собрать для заказов.</p></blockquote></div><p>верно?</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 14 Dec 2016 10:35:37 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5576/#p5576</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выводит только 50 записей]]></title>
			<link>https://forum.readyscript.ru/post/5575/#p5575</link>
			<description><![CDATA[<p>Смотрите сообщение от 06.12.2016.</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Wed, 14 Dec 2016 10:15:05 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/5575/#p5575</guid>
		</item>
	</channel>
</rss>
