Jump to content

Recommended Posts

Здравствуйте, помогите найти ошибку в коде, нужно вывести 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);
Link to post
Share on other sites

Точно! Вот так заработало:
$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);

Проверьте правильность подхода

Link to post
Share on other sites
  • 2 weeks later...

а не подскажите как сделать вывод случайных товаров из выбранной категории (чтоб в админке по типу рекомендуемых товаров можно было выбрать категорию из которой выводить случайные товары)

Link to post
Share on other sites
  • 6 months later...
  • 2 weeks later...
  • 2 months later...
  • 3 months later...

Подскажите пожалуйста куда вставлять сей код? Нужно в левом столбце выводить рандомно по 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);
Link to post
Share on other sites
  • 6 months later...

 

Подскажите пожалуйста куда вставлять сей код? Нужно в левом столбце выводить рандомно по 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);

Все вам "нищебродам" подсказать нужно, заплатите и вам сделают. 

Навеяно вашим же комментарием.

Link to post
Share on other sites

Все вам "нищебродам" подсказать нужно, заплатите и вам сделают. 

Навеяно вашим же комментарием.

 

Одно дело целый функционал на халяву заполучить, другое дело готовый код подсказать куда вставить как бЭ разные вещи если что! P.S Да и сам я потом разобрался что да как!  ;)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...