olgnet Posted February 29, 2012 Report Share Posted February 29, 2012 Здравствуйте, помогите найти ошибку в коде, нужно вывести 4 случайных товара с изображениями, получаю массив где кроме четырех пунктов без изображений, содержатся ещё куча только с изображениями без других данных. Код:$this->db->query('SELECT id FROM s_products ORDER BY RAND() LIMIT 4');$rand_ids = $this->db->results('id');// Выбираем эти товары$rnd_products = $this->products->get_products(array('id'=>$rand_ids)); $images = $this->products->get_images(array('product_id'=>$rand_ids)); foreach($images as $image) { $rnd_products[$image->product_id]->images[] = $image;} foreach($rnd_products as $product) { if(isset($product->images[0])) $product->image = $product->images[0]; }// Передаём в шаблон$this->design->assign('rnd_products', $rnd_products); Quote Link to post Share on other sites
pikusov Posted February 29, 2012 Report Share Posted February 29, 2012 $rnd_products[$image->product_id]Массив товаров у вас не ассоциативный, индекс массива не является id товара Quote Link to post Share on other sites
olgnet Posted February 29, 2012 Author Report Share Posted February 29, 2012 Точно! Вот так заработало:$this->db->query('SELECT id FROM s_products ORDER BY RAND() LIMIT 4');$rnd_ids = $this->db->results('id');foreach ($this->products->get_products(array('id'=>$rnd_ids)) as $product) { $rnd_products[$product->id] = $product;}$variants = $this->variants->get_variants(array('product_id'=>$rnd_ids));foreach($variants as $variant) { $rnd_products[$variant->product_id]->variants[] = $variant;}$images = $this->products->get_images(array('product_id'=>$rnd_ids));foreach($images as $image) { $rnd_products[$image->product_id]->images[] = $image;}foreach($rnd_products as $product) { if(isset($product->variants[0])) $product->variant = $product->variants[0]; if(isset($product->images[0])) $product->image = $product->images[0];}$this->design->assign('rnd_products', $rnd_products);Проверьте правильность подхода Quote Link to post Share on other sites
alinamolchanova Posted March 10, 2012 Report Share Posted March 10, 2012 а не подскажите как сделать вывод случайных товаров из выбранной категории (чтоб в админке по типу рекомендуемых товаров можно было выбрать категорию из которой выводить случайные товары) Quote Link to post Share on other sites
Strannik Posted September 15, 2012 Report Share Posted September 15, 2012 Подскажите плз куда его прописывать. с симплой раньше дел не имел прост .. Quote Link to post Share on other sites
igor_k Posted September 24, 2012 Report Share Posted September 24, 2012 Подскажите плиз, куда именно нужно вставить данный код?Спасибо! Quote Link to post Share on other sites
ivinoku Posted December 3, 2012 Report Share Posted December 3, 2012 У меня в итоге:Fatal error: Call to a member function get_products() on a non-object in... Quote Link to post Share on other sites
Rash Posted March 6, 2013 Report Share Posted March 6, 2013 Подскажите пожалуйста куда вставлять сей код? Нужно в левом столбце выводить рандомно по 1 товару. Спасибо!$this->db->query('SELECT id FROM s_products ORDER BY RAND() LIMIT 4');$rnd_ids = $this->db->results('id');foreach ($this->products->get_products(array('id'=>$rnd_ids)) as $product) {$rnd_products[$product->id] = $product;}$variants = $this->variants->get_variants(array('product_id'=>$rnd_ids));foreach($variants as $variant) {$rnd_products[$variant->product_id]->variants[] = $variant;}$images = $this->products->get_images(array('product_id'=>$rnd_ids));foreach($images as $image) {$rnd_products[$image->product_id]->images[] = $image;}foreach($rnd_products as $product) {if(isset($product->variants[0]))$product->variant = $product->variants[0];if(isset($product->images[0]))$product->image = $product->images[0];}$this->design->assign('rnd_products', $rnd_products); Quote Link to post Share on other sites
trailride Posted September 19, 2013 Report Share Posted September 19, 2013 Скажите куда этот код вставлять, плиз. Quote Link to post Share on other sites
iodjin Posted September 19, 2013 Report Share Posted September 19, 2013 Подскажите пожалуйста куда вставлять сей код? Нужно в левом столбце выводить рандомно по 1 товару. Спасибо! $this->db->query('SELECT id FROM s_products ORDER BY RAND() LIMIT 4'); $rnd_ids = $this->db->results('id'); foreach ($this->products->get_products(array('id'=>$rnd_ids)) as $product) { $rnd_products[$product->id] = $product; } $variants = $this->variants->get_variants(array('product_id'=>$rnd_ids)); foreach($variants as $variant) { $rnd_products[$variant->product_id]->variants[] = $variant; } $images = $this->products->get_images(array('product_id'=>$rnd_ids)); foreach($images as $image) { $rnd_products[$image->product_id]->images[] = $image; } foreach($rnd_products as $product) { if(isset($product->variants[0])) $product->variant = $product->variants[0]; if(isset($product->images[0])) $product->image = $product->images[0]; } $this->design->assign('rnd_products', $rnd_products);Все вам "нищебродам" подсказать нужно, заплатите и вам сделают. Навеяно вашим же комментарием. Quote Link to post Share on other sites
Rash Posted September 19, 2013 Report Share Posted September 19, 2013 Все вам "нищебродам" подсказать нужно, заплатите и вам сделают. Навеяно вашим же комментарием. Одно дело целый функционал на халяву заполучить, другое дело готовый код подсказать куда вставить как бЭ разные вещи если что! P.S Да и сам я потом разобрался что да как! Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.