+ Responder Tema
Resultados 1 al 3 de 3

Tema: ¿Donde esta el fallo en este codigo PHP que a veces no guarda las variables?

  1. #1
    Esto empieza a ser un vicio... Habitante victor5atodogas will become famous soon enough Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,628
    Poder de Reputación
    12

    ¿Donde esta el fallo en este codigo PHP que a veces no guarda las variables?

    Como podreis ver aqui:

    http://www.vallromanesverd.es/es/5-mascotas

    e
    n 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&ntilde;adir'><span style='left: -19px!important;'></span>A&ntilde;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
    Có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&ntilde;adir'><span style='left: -19px!important;'></span>A&ntilde;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>";
    Más Vendidos
    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&ntilde;adir'><span style='left: -19px!important;'></span>A&ntilde;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>";
    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.

    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.
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  2. #2
    Esto empieza a ser un vicio... Habitante skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    Hola:

    ¿Aún tienes el problema o ya lo solucionaste (creo que no lo has arreglado, pero no estoy seguro)?

  3. #3
    Esto empieza a ser un vicio... Habitante victor5atodogas will become famous soon enough Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,628
    Poder de Reputación
    12
    Si, esta solucionado; este codigo es respecto a mostrar productos en "categorias vacias" en una tienda online; no funcionaba porque esa tienda tenia un "error" y en la SQL hay una consulta que busca la imagen destacada, pero esta tienda no tenia todas las imagenes como destacadas, asi que lo solucione.
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

+ Responder Tema

Temas Similares

  1. ¿Donde está el fallo?
    Por Rabs en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 4
    Último Mensaje: 19/07/2011, 17:31
  2. Respuestas: 5
    Último Mensaje: 21/04/2009, 16:02
  3. donde esta el fallo?
    Por chema en el foro Curso Paso a Paso con Html-Kit.
    Respuestas: 12
    Último Mensaje: 22/12/2008, 19:08

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes