Me gustaría, si fuera posible, que alguien pudiera darme una explicación a un "curioso" (y jo..do) suceso que me ocurre con el siguiente código (que más sencillo no puede ser).
Lo único "raro" son las variables $sid = session_id(); y la $s_iduser que una me da el código de la sesión y la otra es una variable de sesión que guarda el código del cliente. La variable $pag es para el control de la ventana que se muestra.
Código PHP:
$sid = session_id();
if ($pag == "agc" and $idprodag <> "")
{
IF ($s_iduser <> "")
{
$codcliente = $s_iduser;
}else{
$codcliente = 0;
}
$sql="select * from productos where idproducto = $idprodag";
$result=mysql_query($sql,$link);
while ($row = mysql_fetch_array($result))
{
$nombreprod = $row["nombre"];
$pvp1 = $row["pvp1"];
$pvp2 = $row["pvp2"];
$pvp3 = $row["pvp3"];
}
if ($cant == "") {$cant = 1;}
$precioventalinea = $cant * $precioventa;
$s=getdate();
$fechasesion = mktime ($s["hours"],$s["minutes"],$s["seconds"], $s["mon"],$s["mday"],$s["year"]);
$sqlcarrito = "INSERT INTO `articulosxsesion` ( `idsesion` , `idcliente` , `fechasesion` ,`nombre` , `cantidad` , `ivaproducto` , `pvp1`, `pvp2`, `pvp3` , `pvpunid` , `pvplinea` )
VALUES ( '$sid', '$codcliente', '$fechasesion', '$nombreprod', '$cant', '18', '$pvp1', '$pvp2', '$pvp3', '0', '0');";
if (mysql_query($sqlcarrito,$link))
{
$mensaje = "<b>PRODUCTO AGREGADO CORRECTAMENTE</b>";
}else{
$descrerror=mysql_error($link);
$mensaje = "<b><font color = 'red'>HUBO UN ERROR</b> $descrerror</font>"; }
$pag = "ini" ;
$idprodag = "";
}
El codigo del que lo llama a él es una función en javascrip desde un popup.
Código PHP:
<script language="JavaScript" type="text/javascript">
function carrito()
{
var id = '<? echo $id_articulo; ?>';
url = 'index.php?pag=agc&idprodag=' + id + '&cant=' + document.form1.cantidad.value;
parent.opener.parent.location=url;
window.self.close();
}
</script>
Cita:
<a class='pagprod' href=\"javascript:carrito();\">[ añadir al pedido ]</a> -
<a class="pagprod" href="javascript:window.self.close();">[ cancelar ]</a>
Para dar más información, (después de haber agregado el producto) la pagina muestra un resumen del carrito (una suma de los productos) y lo muestra bien (aunque lo veo a travez al phpmyadmin y no es cierto). Evidentemente cuando hago cualquier cosa con la pagina ya me aparece el duplicado. <a class='pagprod' href=\"javascript:carrito();\">[ añadir al pedido ]</a> -
<a class="pagprod" href="javascript:window.self.close();">[ cancelar ]</a>
Por cierto... también me pasa lo mismo SUMANDOLE uno (me suma 2) a la cantidad de los articulos en otra página. La función para sumarle uno es la siguiente
Código PHP:
if ($pag == "verc" and $acc == "mas")
{
$sql="select * FROM `articulosxsesion` where idlinea = '$idreg' LIMIT 1";
$result=mysql_query($sql,$link);
while ($row = mysql_fetch_array($result))
{
$idlinea = $row["idlinea"];
$nombre = strtoupper($row["nombre"]);
$cantidad = $row["cantidad"];
$pvpunid = $row["pvpunid"];
}
$cantidad = $cantidad +1;
$pvplinea = $pvpunid * $cantidad;
$sql = "UPDATE `articulosxsesion` SET `cantidad` = '$cantidad', `pvplinea` = '$pvplinea' WHERE idlinea = '$idreg' LIMIT 1;";
mysql_query($sql,$link);
$acc = "";
}
También deciros que otros querys lo hace perfectamente (dar de alta a los clientes, dar de alta a los productos, modificar los datos, etc...).
En fin, ya no sé más que hacerle. Espero vuestros consejos y comentarios.
Muchas gracias.