<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; Выводит только 50 записей]]></title>
	<link rel="self" href="https://forum.readyscript.ru/feed/atom/topic/1008/" />
	<updated>2016-12-15T08:53:48Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.readyscript.ru/topic/1008/vyvodit-tolko-50-zapisei/</id>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5600/#p5600" />
			<content type="html"><![CDATA[<p>Ну разберитесь в чём дело. Это вопрос общего программирования. Вы же специалист. Посмотрите, что у Вас массивах, потестируйте, отследите, проанализируйте. В данном случае всё зависит только от Вас и Ваших данных.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-15T08:53:48Z</updated>
			<id>https://forum.readyscript.ru/post/5600/#p5600</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5598/#p5598" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2016-12-15T08:42:20Z</updated>
			<id>https://forum.readyscript.ru/post/5598/#p5598</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5597/#p5597" />
			<content type="html"><![CDATA[<p>Вынесите за пределы цикла и смотрите что у Вас в <strong>$itemslist</strong>. Проследите что происходит <strong>$user_ids</strong></p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-15T08:27:34Z</updated>
			<id>https://forum.readyscript.ru/post/5597/#p5597</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5595/#p5595" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2016-12-15T07:51:51Z</updated>
			<id>https://forum.readyscript.ru/post/5595/#p5595</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5594/#p5594" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-15T07:34:35Z</updated>
			<id>https://forum.readyscript.ru/post/5594/#p5594</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5593/#p5593" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2016-12-15T07:26:40Z</updated>
			<id>https://forum.readyscript.ru/post/5593/#p5593</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5592/#p5592" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-15T07:21:13Z</updated>
			<id>https://forum.readyscript.ru/post/5592/#p5592</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5589/#p5589" />
			<content type="html"><![CDATA[<p>Но так мы получим только один адрес?</p>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2016-12-15T07:13:35Z</updated>
			<id>https://forum.readyscript.ru/post/5589/#p5589</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5581/#p5581" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-14T13:52:48Z</updated>
			<id>https://forum.readyscript.ru/post/5581/#p5581</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5580/#p5580" />
			<content type="html"><![CDATA[<p>Дак это все сделано же уже, как состыковать то их. Снова дуаеощшт делать?</p>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2016-12-14T12:24:41Z</updated>
			<id>https://forum.readyscript.ru/post/5580/#p5580</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5579/#p5579" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-14T11:49:16Z</updated>
			<id>https://forum.readyscript.ru/post/5579/#p5579</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5578/#p5578" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2016-12-14T11:04:58Z</updated>
			<id>https://forum.readyscript.ru/post/5578/#p5578</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5577/#p5577" />
			<content type="html"><![CDATA[<p>Да</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-14T10:39:11Z</updated>
			<id>https://forum.readyscript.ru/post/5577/#p5577</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5576/#p5576" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Далее в получившемся массиве адресов пройтись по нему и собрать для заказов.</p></blockquote></div><p>верно?</p>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2016-12-14T10:35:37Z</updated>
			<id>https://forum.readyscript.ru/post/5576/#p5576</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Выводит только 50 записей]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5575/#p5575" />
			<content type="html"><![CDATA[<p>Смотрите сообщение от 06.12.2016.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-14T10:15:05Z</updated>
			<id>https://forum.readyscript.ru/post/5575/#p5575</id>
		</entry>
</feed>
