entiendo.... ok, te recomiendo por integridad de los datos que SIEMPRE utilices campos numericos para representar tu llave primaria, en este caso, entonces si debes poner el campo "login" como estaba, pero hay que corregir algunas cosas, te las pongo a continuacion para poder que soporte varchar.
y si, si es necesario que "codigo_usuario" este en varchar.
Código PHP:
<?php
$idarticulo=isset($_GET["var"]) ? $_GET["var"] : 0;
$user=$_SESSION["user"];
$conexion=mysql_connect("localhost","root","");
mysql_select_db("neotech",$conexion);
$misql="SELECT * FROM usuarios where login='$user'";
$rs = mysql_query($misql,$conexion) or die("Query error: ". mysql_error());
if (mysql_num_rows($rs) == 1) {
$row = mysql_fetch_array($rs);
$codigo_usuario = $row['login']; //remplaza este campo por el correcto, sino te mandara error
$sSQL = "select * from carrito where codigo_producto=$idarticulo and codigo_usuario='$codigo_usuario'";
$rsc = mysql_query($sSQL,$conexion) or die("Query error: ". mysql_error());
if (mysql_num_rows($rsc) == 0) {
$sSQL = "insert into carrito(codigo_usuario,codigo_producto) values('$codigo_usuario',$idarticulo)";
mysql_query($sSQL,$conexion);
}
mysql_free_result($rsc);
}
mysql_free_result($rs);
header("location:productos/compra.php");
?>