Foros del Web » Programando para Internet » PHP »

Problema con carrito

Estas en el tema de Problema con carrito en el foro de PHP en Foros del Web. Estoy haciendo un carrito para un proyecto y resulta que tengo un error medio raro Código PHP:     $sql = "select * from carrito where carrito_id_usuario=" . $HTTP_SESSION_VARS [ "usuario" ]; ...
  #1 (permalink)  
Antiguo 23/11/2002, 01:06
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 3 meses
Puntos: 1
Problema con carrito

Estoy haciendo un carrito para un proyecto y resulta que tengo un error medio raro

Código PHP:
    $sql="select * from carrito where carrito_id_usuario=".$HTTP_SESSION_VARS["usuario"];
    
ejecutaQuery($sql,"","");
    
contarRegistros($resultado);
    echo 
$numeroRegistros;    
    if(
$numeroRegistros>0)
    {
        while(
$registros=@mysql_fetch_array($resultado))
        {
            
$sql="insert into peddet values(".$ultimo.",".$registros["carrito_id_producto"].",".$registros["carrito_precio"].",".$registros["carrito_cantidad"].")";
            
ejecutaQuery($sql,"","");
        }
        
$sql="delete from carrito where carrito_id_usuario=".$HTTP_SESSION_VARS["usuario"];
        
ejecutaQuery($sql,"","");
    } 
Bueno pues resulta que cuando imprimo echo $numeroRegistros; y tengo 2 articulos en el carrito me imprime 2 , hasta ahi todo bien, pero resulta que cuando entra al ciclo solo lo hace una vez, es decir solo me pasa 1 articulo de la tabla carrito a la tabla peddet.

Alguien sabe cual puede ser la razon para que solo recorra una vez el ciclo cuando estoy verificando que en realidad la query me regresa 2 registros?

Saludos y gracias
  #2 (permalink)  
Antiguo 23/11/2002, 13:05
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Si no me equivoco, la razon por la que solo recorre una vez el WHILE es porque:

Al momento de ejecutar de nuevo tu funcion "ejecutaQuery", (cuando eliminas), el identificador del resultado lo "reseteas" tambien.

Te recomiendo que en lugar de usar tu funcion para eliminar el registro, utilices una nueva sentencia de mysql_query asignada a un diferente identificador.

Creo que por ahi esta tu problema.

Cuando he hecho cosas similares, lo que hago es que en el loop del while voy recogiendo los ID de los registros que voy a eliminar en una variable array (por ejemplo, $borra_in[]), y cuando se termina el loop, ejecuto la sentencia de borrado asi:

$borra=implode(",", $borra_in);
mysql_query("delete from mitabla where ID in ($borra)");


Espero que te ayude.

Saludos ASP Master
__________________
Manoloweb
  #3 (permalink)  
Antiguo 23/11/2002, 14:09
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 3 meses
Puntos: 1
Es cierto !!

Muchas gracias problema resuelto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:54.