Como podreis ver aqui:
http://www.vallromanesverd.es/es/5-mascotas
en la parte central inferior aparecen 3 tabs, "Destacados", "Novedades" y "Mas Vendidos"; el problema esta en que en "Novedades" las imágenes de los productos son correctas, pero en las otras 2 tabs ("Destacados" y "Mas Vendidos") a veces repite las imágenes del producto anterior y no se corresponden.
Os coloco el código PHP separandolo por cada una de esas tabs.
Parte general de consultas / OPINIONES
Código:$sqldestacados2 = "SELECT DISTINCT p.id_product, pl.name, p.ean13, p.id_category_default, cl.link_rewrite AS cll, pl.link_rewrite AS pl, p.price, p.id_tax_rules_group FROM ps_product AS p INNER JOIN ps_product_lang AS pl INNER JOIN ps_category_lang as cl ON cl.id_category = p.id_category_default AND cl.id_lang = 3 AND p.id_product = pl.id_product AND p.active = 1 AND pl.id_lang = 3 AND (p.id_category_default = " .$nueva .") GROUP BY p.id_product"; $sqldestacados = "SELECT DISTINCT p.id_product, pl.name, p.ean13, p.id_category_default, cl.link_rewrite AS cll, pl.link_rewrite AS pl, p.price, p.id_tax_rules_group FROM ps_product AS p INNER JOIN ps_product_lang AS pl INNER JOIN ps_category_lang as cl ON cl.id_category = p.id_category_default AND cl.id_lang = 3 AND p.id_product = pl.id_product AND p.active = 1 AND pl.id_lang = 3 AND (p.id_category_default = " .$nueva .") GROUP BY p.id_product ORDER BY RAND( ) LIMIT 0 , 15"; $sqlnuevos = "SELECT DISTINCT p.id_product, pl.name, p.ean13, p.id_category_default, cl.link_rewrite AS cll, pl.link_rewrite AS pl, p.price, p.id_tax_rules_group FROM ps_product AS p INNER JOIN ps_product_lang AS pl INNER JOIN ps_category_lang as cl ON cl.id_category = p.id_category_default AND p.id_product = pl.id_product AND pl.id_lang = 3 AND p.active = 1 AND (p.id_category_default = " .$nueva .") GROUP BY p.id_product ORDER BY `date_add` DESC LIMIT 0 , 15"; $sqlmasvendidos = "SELECT DISTINCT p.id_product, pl.name, p.ean13, p.id_category_default, cl.link_rewrite AS cll, pl.link_rewrite AS pl, p.price, p.id_tax_rules_group FROM ps_product AS p INNER JOIN ps_product_lang AS pl ON p.id_product = pl.id_product INNER JOIN ps_product_sale AS ps ON p.id_product = ps.id_product INNER JOIN ps_category_lang AS cl ON cl.id_category = p.id_category_default AND pl.id_lang =3 AND p.active = 1 AND (p.id_category_default =" .$nueva .") GROUP BY p.id_product ORDER BY RAND( ) LIMIT 0 , 15"; $sqlopiniones = "SELECT feedback, name, date FROM `ps_feedback` WHERE permission = 1 ORDER BY RAND( ) LIMIT 0 , 1"; $tabladestacados = mysql_query($sqldestacados); $tablanuevos = mysql_query($sqlnuevos); $tablamasvendidos = mysql_query($sqlmasvendidos); $tablaopiniones = mysql_query($sqlopiniones); $tabladestacados2 = mysql_query($sqldestacados2); $total_destacados = mysql_num_rows($tabladestacados2);
Destacados
Código:$tododestacados = "<div id='HomeTabs1' class='HomeTabs' style='padding:0px!important;float: left;clear: both;'> <ul id='more_info_tabs' class='idTabs idTabsShort' style='border: none;margin-top:18px!important;'><li><a id='masdestacados' href='#destacados' class='selected'>Destacados</a></li><li><a id='masnuevos' style='color:white!important;' href='#nuevos'>Novedades</a></li><li><a id='masvendidos' href='#vendidos'>Mas Vendidos</a></li></ul><div id='destacados'><div class='block_content' style='border:none;'><ul style='list-style:none;'>";$todonuevos = ""; $todomasvendidos = ""; $todoopiniones = ""; $cuentadestacados = 0; $cuentanuevos = 0; $cuentamasvendidos = 0; $cuentaopiniones = 0; while($row = mysql_fetch_array($tabladestacados)) { $pnombre = $row['name']; if ($longca > 35) { $pnombre1 = substr($pnombre, 0, 35); $pnombre1 = $pnombre1 ."..."; } else { $pnombre1 = $pnombre; } $pid = $row['id_product']; $clink = $row['cll']; $plink = $row['pl']; $pwp = $row['price']; $pean = $row['ean13']; $ptaxgroup = $row['id_tax_rules_group']; $tablaimagen = mysql_query("SELECT * FROM ps_image WHERE id_product = " .$pid ." and position = 1"); while($row = mysql_fetch_array($tablaimagen)) { $idimage = $row['id_image']; } $tablatax = mysql_query("SELECT * FROM ps_tax WHERE id_tax = " .$ptaxgroup); while($row = mysql_fetch_array($tablatax)) { $tax_rate = $row['rate']; } if ($tax_rate == "18.00") { $tax_rate = 1.18; } elseif ($tax_rate = "8.00") { $tax_rate = 1.08; } else { $tax_rate = 1.04; } if ($pean <> "") { $plink = $plink ."-" .$pean; } $pr = $pwp * $tax_rate; $pr = round($pr,2); $precio_viejo = $pr; $pdescontar = ""; $precio_nuevo = ""; $tabladesc = mysql_query("SELECT * FROM ps_specific_price WHERE id_product = " .$pid." and from_quantity = 1"); while($row = mysql_fetch_array($tabladesc)) { $pdesc = $row['reduction']; $type = $row['reduction_type']; $tabladesc = mysql_query("SELECT * FROM ps_product_attribute WHERE id_product = " .$pid." and default_on = 1"); while($row = mysql_fetch_array($tabladesc)) { $atribute_price = $row['price']; } if ($atribute_price > $pwp) { if ($type == "percentage") { $as = $pwp + $atribute_price; $pr2 = $as * $tax_rate; $pr = round($pr2,2); $as2 = $as * $pdesc; $as2 = $as - $as2; $pr2 = $as2 * $tax_rate; $pr = round($pr2,2); $precio_nuevo = $pr; } else { $as = $pwp + $atribute_price; $pr2 = $as * $tax_rate; $pr = round($pr2,2); $pr2 = $as2 * $tax_rate; $pr = round($pr2,2); $precio_nuevo = $pr - $pdesc; } } else { if ($type == "percentage") { $as = $pwp * $pdesc; $pdescontar = $pwp - $as; $pr2 = $pdescontar; $pr2 = $pr2 * $tax_rate; $pr2 = round($pr2,2); $precio_nuevo = $pr2; } else { $pr2 = $pwp * $tax_rate; $pr2 = round($pr2,2); $pr2 = $pr2 - $pdesc; $precio_nuevo = $pr2; } } } $botona = "<a class='button ajax_add_to_cart_button exclusive' style='margin-bottom: 5px;margin-left: 30px;float: left;' href='/carro-de-la-compra?add&id_product=$pid' rel='ajax_id_product_$pid' title='Añadir'><span style='left: -19px!important;'></span>Añadir</a>"; $botonver = "<a class='button lnk_view' style='margin-bottom: 5px;margin-left: 5px;' href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='Ver'><span></span>Ver</a>"; $botones = $botona .$botonver; $tododestacados = $tododestacados ."<li style='width:162px;float:left;list-style:none;margin-right:6px;'><div id='titulo' style='width:162px;height:39px;'><a href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='$pnombre' style='text-decoration:none;color: #B59359;font-weight: bold;'>$pnombre1</a></div><a href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='$pnombre' style='text-decoration:none;'><div id='imagen' style='width:162px;height:131px;margin:0 auto;text-align:center;'><img src='/" .$idimage ."-home/" .$plink .".jpg' title'$pnombre' alt='$pnombre' height='131px' widht='131px' /></div></a><div id='precioo' style='width:162px;height:18px;margin:0 auto;text-align:center;'>"; if ($precio_nuevo <> "") { $tododestacados = $tododestacados ."<span style='color: red;text-decoration: line-through;margin-right:3px;'>$pr</span><span style='text-decoration:none!important;text-align:center!important;margin:0 auto;font-weight: bold;color: red;text-shadow: 1px 1px 2px #433D32;'>$precio_nuevo €</span></div>$botones</li>"; } else { $tododestacados = $tododestacados ."<span style='text-decoration:none!important;text-align:center!important;margin:0 auto;font-weight: bold;color: red;text-shadow: 1px 1px 2px #433D32;'>$pr €$precio_nuevo</span></div>$botones</li>"; } } $tododestacados = $tododestacados ."</ul></div></div>";
Novedades
Más VendidosCódigo:$todonuevos = "<div id='nuevos'><div class='block_content' style='border: none;'><ul style='list-style:none;'>";while($row = mysql_fetch_array($tablanuevos)) { $pnombre = $row['name']; if ($longca > 35) { $pnombre1 = substr($pnombre, 0, 35); $pnombre1 = $pnombre1 ."..."; } else { $pnombre1 = $pnombre; } $pid = $row['id_product']; $clink = $row['cll']; $plink = $row['pl']; $pwp = $row['price']; $pean = $row['ean13']; $ptaxgroup = $row['id_tax_rules_group']; $tablaimagen = mysql_query("SELECT * FROM ps_image WHERE id_product = " .$pid ." and position = 1"); while($row = mysql_fetch_array($tablaimagen)) { $idimage = $row['id_image']; } $tablatax = mysql_query("SELECT * FROM ps_tax WHERE id_tax = " .$ptaxgroup); while($row = mysql_fetch_array($tablatax)) { $tax_rate = $row['rate']; } if ($tax_rate == "18.00") { $tax_rate = 1.18; } elseif ($tax_rate = "8.00") { $tax_rate = 1.08; } else { $tax_rate = 1.04; } if ($pean <> "") { $plink = $plink ."-" .$pean; } $pr = $pwp * $tax_rate; $pr = round($pr,2); $precio_viejo = $pr; $pdescontar = ""; $precio_nuevo = ""; $tabladesc = mysql_query("SELECT * FROM ps_specific_price WHERE id_product = " .$pid." and from_quantity = 1"); while($row = mysql_fetch_array($tabladesc)) { $pdesc = $row['reduction']; $type = $row['reduction_type']; $tabladesc = mysql_query("SELECT * FROM ps_product_attribute WHERE id_product = " .$pid." and default_on = 1"); while($row = mysql_fetch_array($tabladesc)) { $atribute_price = $row['price']; } if ($atribute_price > $pwp) { if ($type == "percentage") { $as = $pwp + $atribute_price; $pr2 = $as * $tax_rate; $pr = round($pr2,2); $as2 = $as * $pdesc; $as2 = $as - $as2; $pr2 = $as2 * $tax_rate; $pr = round($pr2,2); $precio_nuevo = $pr; } else { $as = $pwp + $atribute_price; $pr2 = $as * $tax_rate; $pr = round($pr2,2); $pr2 = $as2 * $tax_rate; $pr = round($pr2,2); $precio_nuevo = $pr - $pdesc; } } else { if ($type == "percentage") { $as = $pwp * $pdesc; $pdescontar = $pwp - $as; $pr2 = $pdescontar; $pr2 = $pr2 * $tax_rate; $pr2 = round($pr2,2); $precio_nuevo = $pr2; } else { $pr2 = $pwp * $tax_rate; $pr2 = round($pr2,2); $pr2 = $pr2 - $pdesc; $precio_nuevo = $pr2; } } } $botona = "<a class='button ajax_add_to_cart_button exclusive' style='margin-bottom: 5px;margin-left: 30px;float: left;' href='/carro-de-la-compra?add&id_product=$pid' rel='ajax_id_product_$pid' title='Añadir'><span style='left: -19px!important;'></span>Añadir</a>"; $botonver = "<a class='button lnk_view' style='margin-bottom: 5px;margin-left: 5px;' href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='Ver'><span></span>Ver</a>"; $botones = $botona .$botonver; $todonuevos = $todonuevos ."<li style='width:162px;float:left;list-style:none;margin-right:6px;'><div id='titulo' style='width:162px;height:39px;'><a href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='$pnombre' style='text-decoration:none;color: #B59359;font-weight: bold;'>$pnombre1</a></div><a href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='$pnombre' style='text-decoration:none;'><div id='imagen' style='width:162px;height:131px;margin:0 auto;text-align:center;'><img src='/" .$idimage ."-home/" .$plink .".jpg' title'$pnombre' alt='$pnombre' height='131px' widht='131px' /></div></a><div id='precioo' style='width:162px;height:18px;margin:0 auto;text-align:center;'>"; if ($precio_nuevo <> "") { $todonuevos = $todonuevos ."<span style='color: red;text-decoration: line-through;margin-right:3px;'>$pr</span><span style='text-decoration:none!important;text-align:center!important;margin:0 auto;font-weight: bold;color: red;text-shadow: 1px 1px 2px #433D32;'>$precio_nuevo €</span></div>$botones</li>"; } else { $todonuevos = $todonuevos ."<span style='text-decoration:none!important;text-align:center!important;margin:0 auto;font-weight: bold;color: red;text-shadow: 1px 1px 2px #433D32;'>$pr €$precio_nuevo</span></div>$botones</li>"; } } $todonuevos = $todonuevos ."</ul></div></div>";
Por cierto y como ultima cosa, este es el código que obtiene la opinión inferior, lo digo para que lo reviséis ya que aunque hay mas de 20 opiniones casi siempre pone la misma.Código:$todovendidos = "<div id='vendidos'><div class='block_content' style='border: none;'><ul style='list-style:none;'>";while($row = mysql_fetch_array($tablamasvendidos)) { $pnombre = $row['name']; if ($longca > 35) { $pnombre1 = substr($pnombre, 0, 35); $pnombre1 = $pnombre1 ."..."; } else { $pnombre1 = $pnombre; } $pid = $row['id_product']; $clink = $row['cll']; $plink = $row['pl']; $pwp = $row['price']; $pean = $row['ean13']; $ptaxgroup = $row['id_tax_rules_group']; $tablaimagen = mysql_query("SELECT * FROM ps_image WHERE id_product = " .$pid ." and position = 1"); while($row = mysql_fetch_array($tablaimagen)) { $idimage = $row['id_image']; } $tablatax = mysql_query("SELECT * FROM ps_tax WHERE id_tax = " .$ptaxgroup); while($row = mysql_fetch_array($tablatax)) { $tax_rate = $row['rate']; } if ($tax_rate == "18.00") { $tax_rate = 1.18; } elseif ($tax_rate = "8.00") { $tax_rate = 1.08; } else { $tax_rate = 1.04; } if ($pean <> "") { $plink = $plink ."-" .$pean; } $pr = $pwp * $tax_rate; $pr = round($pr,2); $precio_viejo = $pr; $pdescontar = ""; $precio_nuevo = ""; $tabladesc = mysql_query("SELECT * FROM ps_specific_price WHERE id_product = " .$pid." and from_quantity = 1"); while($row = mysql_fetch_array($tabladesc)) { $pdesc = $row['reduction']; $type = $row['reduction_type']; $tabladesc = mysql_query("SELECT * FROM ps_product_attribute WHERE id_product = " .$pid." and default_on = 1"); while($row = mysql_fetch_array($tabladesc)) { $atribute_price = $row['price']; } if ($atribute_price > $pwp) { if ($type == "percentage") { $as = $pwp + $atribute_price; $pr2 = $as * $tax_rate; $pr = round($pr2,2); $as2 = $as * $pdesc; $as2 = $as - $as2; $pr2 = $as2 * $tax_rate; $pr = round($pr2,2); $precio_nuevo = $pr; } else { $as = $pwp + $atribute_price; $pr2 = $as * $tax_rate; $pr = round($pr2,2); $pr2 = $as2 * $tax_rate; $pr = round($pr2,2); $precio_nuevo = $pr - $pdesc; } } else { if ($type == "percentage") { $as = $pwp * $pdesc; $pdescontar = $pwp - $as; $pr2 = $pdescontar; $pr2 = $pr2 * $tax_rate; $pr2 = round($pr2,2); $precio_nuevo = $pr2; } else { $pr2 = $pwp * $tax_rate; $pr2 = round($pr2,2); $pr2 = $pr2 - $pdesc; $precio_nuevo = $pr2; } } } $botona = "<a class='button ajax_add_to_cart_button exclusive' style='margin-bottom: 5px;margin-left: 30px;float: left;' href='/carro-de-la-compra?add&id_product=$pid' rel='ajax_id_product_$pid' title='Añadir'><span style='left: -19px!important;'></span>Añadir</a>"; $botonver = "<a class='button lnk_view' style='margin-bottom: 5px;margin-left: 5px;' href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='Ver'><span></span>Ver</a>"; $botones = $botona .$botonver; $todovendidos = $todovendidos ."<li style='width:162px;float:left;list-style:none;margin-right:6px;'><div id='titulo' style='width:162px;height:39px;'><a href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='$pnombre' style='text-decoration:none;color: #B59359;font-weight: bold;'>$pnombre1</a></div><a href='/" .$clink ."/" .$pid ."-" .$plink .".html' title='$pnombre' style='text-decoration:none;'><div id='imagen' style='width:162px;height:131px;margin:0 auto;text-align:center;'><img src='/" .$idimage ."-home/" .$plink .".jpg' title'$pnombre' alt='$pnombre' height='131px' widht='131px' /></div></a><div id='precioo' style='width:162px;height:18px;margin:0 auto;text-align:center;'>"; if ($precio_nuevo <> "") { $todovendidos = $todovendidos ."<span style='color: red;text-decoration: line-through;margin-right:3px;'>$pr</span><span style='text-decoration:none!important;text-align:center!important;margin:0 auto;font-weight: bold;color: red;text-shadow: 1px 1px 2px #433D32;'>$precio_nuevo €</span></div>$botones</li>"; } else { $todovendidos = $todovendidos ."<span style='text-decoration:none!important;text-align:center!important;margin:0 auto;font-weight: bold;color: red;text-shadow: 1px 1px 2px #433D32;'>$pr €$precio_nuevo</span></div>$botones</li>"; } } $todovendidos = $todovendidos ."</ul></div></div></div>";
Ahora solo toca encontrar el "error" y sabes porque repite a veces la imagen de los productos anteriores.
Un saludo y muchas gracias por todo.
PD: Perdón por tanto código.



Citar


Marcadores