Foros del Web » Programando para Internet » PHP »

eliminar posicion de vector no funciona

Estas en el tema de eliminar posicion de vector no funciona en el foro de PHP en Foros del Web. 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] ...
  #1 (permalink)  
Antiguo 07/06/2006, 22:56
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 971
Antigüedad: 13 años, 7 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.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 14:48.