Foros del Web » Programando para Internet » PHP »

eliminar linea de array

Estas en el tema de eliminar linea de array en el foro de PHP en Foros del Web. Hola fenómenos, Con vuestra ayuda estoy terminando ya el carrito en php. Pero ahora me surge otra duda y es cómo eliminar un elemento introducido. ...
  #1 (permalink)  
Antiguo 30/08/2005, 04:32
 
Fecha de Ingreso: agosto-2005
Mensajes: 77
Antigüedad: 12 años, 4 meses
Puntos: 0
eliminar linea de array

Hola fenómenos,

Con vuestra ayuda estoy terminando ya el carrito en php. Pero ahora me surge otra duda y es cómo eliminar un elemento introducido. Cuando le doy a eliminar lo único q hace es actualizar la página y añadirlo otra vez, es decir lo contrario de lo que quiero. Sé que debo crear una function eliminar y luego pasar la variable por $_GET mediante el botón eliminar pero... si varias lineas tienen el mismo producto... (lo hice adrede así) ¿cómo consigo que borre ESA linea? he visto por ahí algo así como array=>this q creo q tiene q ver con esto pero no sé cómo hacerlo.
Este es el código, pero la función eliminar no sirve para nada.

Código PHP:
<?php 
session_start
(); 
session_register('itemsEnCesta'); 
$array [$id] = $jugadores


if (
$id){ 
   
$itemsEnCesta [] = $array


//Eliminar producto:
function elimina_producto($id){
        
$this->array_id[$id]=0;
    }

?> 
<html> 
<body> 
<tt> 
<? 
if (isset($itemsEnCesta)){ 
echo
'El contenido de la cesta de la compra es:<br>'
echo 
'<table border=1 cellpadding="3">';
foreach(
$itemsEnCesta as $k => $v){ 
   foreach (
$v as $k =>$jugadores
      echo 
'<tr><td><b>Artículo:</b> '.$k.'</td><td><b> ud: </b>'.$jugadores.'</td><td><b> precio/jugador: </b>'.$precio.'</td><td><b> total: </b>'.$jugadores*$precio.'</td><td><a href="carrito.php?id=$id">Eliminar</a></td></tr>'


unset(
$array); 
echo 
'</table>';


?> 
</tt> 
<br> 
<br> 
<a href="campos.htm">Añadir reserva</a></tt> 
</body> 
</html>
  #2 (permalink)  
Antiguo 30/08/2005, 04:50
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Eliminar producto de carrito

carrito.php es la misma pagina en la que añades ¿no? Obviamente no esta bien, porque cuando llames otra vez a la misma pagina, se añade otra vez, como tu has dicho. Debes hacerlo en otra pagina. Como tienes una variable de sesion donde guardas todos los productos, no tendras problema. Acuerdate de poner session_start() en todas las paginas.
  #3 (permalink)  
Antiguo 30/08/2005, 04:57
 
Fecha de Ingreso: agosto-2005
Mensajes: 77
Antigüedad: 12 años, 4 meses
Puntos: 0
¿Te refieres a que debo definir la función en otra página?
  #4 (permalink)  
Antiguo 30/08/2005, 05:19
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Carrito de la compra

No se muy bien qué hace tu funcion, no creo que haga falta hacer ninguna funcion. Simplemente pasa el id por $_GET a la pagina y eliminas ese id del array. Lo que pasa, como tu has dicho, es que hay un mismo id repetido (refiriendome con id al nombre del producto), entonces deberias pasarle el indice del array, que es lo que es único.

Te digo como hacerlo, habria que modificar tu codigo, sobre todo las variables de los foreach, porque necesitas la primera $k y en el segundo foreach la llamas igual, con lo cual se sobreescribiria.

Al boton eliminar le pasas $k y asi ya sabes exactamente el producto que tienes que eliminar. Cuando elimines no pongas el valor a 0, haz un unset:

unset($itemsEnCesta[$k]);

Código PHP:
<?
if (isset($itemsEnCesta)){
echo
'El contenido de la cesta de la compra es:<br>';
echo 
'<table border=1 cellpadding="3">';
foreach(
$itemsEnCesta as $k => $v){
   foreach (
$v as $key =>$jugadores)
      echo 
'<tr><td><b>Artículo:</b> '.$key.'</td><td><b> ud: </b>'.$jugadores.'</td><td><b> precio/jugador: </b>'.$precio.'</td><td><b> total: </b>'.$jugadores*$precio.'</td><td><a href="carrito.php?id=$k">Eliminar</a></td></tr>';
}
}
unset(
$array);
echo 
'</table>';


?>
  #5 (permalink)  
Antiguo 30/08/2005, 05:31
 
Fecha de Ingreso: agosto-2005
Mensajes: 77
Antigüedad: 12 años, 4 meses
Puntos: 0
Pues da el mismo resultado. Sigo sin enterarme, lo siento pero soy muy torpe con esto todavía. Estoy pensando en empezar otro desde el principio pero con una página para cada función (añadir, borrar, imprimir carrito) siguiendo como ejemplo el código de otro manual q he encontrado pero... ¿crees que valdrá la pena? ¿Podría conseguirlo sin modificar todo el código?
  #6 (permalink)  
Antiguo 30/08/2005, 05:51
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Carrito de la compra

No se si estaras dado de alta en http://www.desarrolloweb.com
Si te das de alta te podras descargar el codigo del carrito de la compra entero.
Pero tendras que modificarlo si lo que quieres es meter en cada fila un producto.
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 20:55.