olgnet Опубликовано 29 февраля, 2012 Жалоба Поделиться Опубликовано 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); Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 29 февраля, 2012 Жалоба Поделиться Опубликовано 29 февраля, 2012 $rnd_products[$image->product_id]Массив товаров у вас не ассоциативный, индекс массива не является id товара Цитата Ссылка на сообщение Поделиться на другие сайты
olgnet Опубликовано 29 февраля, 2012 Автор Жалоба Поделиться Опубликовано 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);Проверьте правильность подхода Цитата Ссылка на сообщение Поделиться на другие сайты
alinamolchanova Опубликовано 10 марта, 2012 Жалоба Поделиться Опубликовано 10 марта, 2012 а не подскажите как сделать вывод случайных товаров из выбранной категории (чтоб в админке по типу рекомендуемых товаров можно было выбрать категорию из которой выводить случайные товары) Цитата Ссылка на сообщение Поделиться на другие сайты
Strannik Опубликовано 15 сентября, 2012 Жалоба Поделиться Опубликовано 15 сентября, 2012 Подскажите плз куда его прописывать. с симплой раньше дел не имел прост .. Цитата Ссылка на сообщение Поделиться на другие сайты
igor_k Опубликовано 24 сентября, 2012 Жалоба Поделиться Опубликовано 24 сентября, 2012 Подскажите плиз, куда именно нужно вставить данный код?Спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
ivinoku Опубликовано 3 декабря, 2012 Жалоба Поделиться Опубликовано 3 декабря, 2012 У меня в итоге:Fatal error: Call to a member function get_products() on a non-object in... Цитата Ссылка на сообщение Поделиться на другие сайты
Rash Опубликовано 6 марта, 2013 Жалоба Поделиться Опубликовано 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); Цитата Ссылка на сообщение Поделиться на другие сайты
trailride Опубликовано 19 сентября, 2013 Жалоба Поделиться Опубликовано 19 сентября, 2013 Скажите куда этот код вставлять, плиз. Цитата Ссылка на сообщение Поделиться на другие сайты
iodjin Опубликовано 19 сентября, 2013 Жалоба Поделиться Опубликовано 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);Все вам "нищебродам" подсказать нужно, заплатите и вам сделают. Навеяно вашим же комментарием. Цитата Ссылка на сообщение Поделиться на другие сайты
Rash Опубликовано 19 сентября, 2013 Жалоба Поделиться Опубликовано 19 сентября, 2013 Все вам "нищебродам" подсказать нужно, заплатите и вам сделают. Навеяно вашим же комментарием. Одно дело целый функционал на халяву заполучить, другое дело готовый код подсказать куда вставить как бЭ разные вещи если что! P.S Да и сам я потом разобрался что да как! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.