Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2006, 21:56
Avatar de moron
moron
 
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 11 meses
Puntos: 2
eliminar posicion de vector no funciona

Con este script intento borrar una posicion de un vector.

<?php
session_start();
session_register('itemsEnCesta');

if ($_POST[eliminar]) {

$item_fuera=$_POST["articulo"];
$posicion=array_keys($_SESSION[itemsEnCesta],$item_fuera);
$posicion=array_keys($itemsEnCesta,$item_fuera);
array_splice($_SESSION[itemsEnCesta],$posicion[0],1);
}

ej.
para:
Array ([1] => 5 [3] => 1 )
si $item_fuera=1 queda:
Array ( [0] => 5 [3] => 1 )
Es decir que aparentemente la "elimina" poniendo en 0 su indice.

Pero luego llamo a la session desde otra pagina, que recorre el vector session y en base al key de este va armando un sql:

Código PHP:
//armo la lista de id para el in() del sql
if (isset($itemsEnCesta)){
    foreach(
$itemsEnCesta as $k => $v){
        if (
$k!=0){
            if (
$bandera){
                
$busc=$busc.",".$k;
            }else{
                
$busc=$k;
                
$bandera=true;
        }
    
        }
    }        
}
sql="select * from tabla where id in (".$busc.")"
como resultado este me muestra los items que incluso fueron borrados y el array que muestra es:
Array ( [0] => 5 [1] => 5 [3] => 1 )
es decir que no actualizo la session.

Luego hago un requiere que es donde está el ultimo codigo que postié.
require_once("paginaQueRecorreSession.php");
?>

Muchas gracias desde ya.