Foros del Web » Programación web » PHP »

Eliminar elementos de un array que se encuentra en un archivo

Estas en el tema de Eliminar elementos de un array que se encuentra en un archivo en el foro de PHP en Foros del Web. Hola a todos, en un sript para crear comentarios (algo así como el muro de face), me falta una función que pueda borrar un determinado ...
  #1 (permalink)  
Antiguo 01/10/2010, 07:28
Avatar de 3nr1c  
Fecha de Ingreso: septiembre-2010
Mensajes: 398
Antigüedad: 3 años, 7 meses
Puntos: 50
Pregunta Eliminar elementos de un array que se encuentra en un archivo

Hola a todos, en un sript para crear comentarios (algo así como el muro de face), me falta una función que pueda borrar un determinado mensaje. Los mensajes se encuentran en un array que viene dentro de un archivo y va algo así:

username.txt:
Código PHP:
<?php return array(=> "<b>3nr1c escribió el 1/10/2010 a las 15:23:</b><br>Esto es un mensaje",=> "<b>3nr1c escribió el 1/10/2010 a las 15:24:</b><br>Esto es otro mensaje",);
(El usuario y la fecha varian, y el mensaje es introducido y posteado mediante post).

Bien, los mensajes se imprimen así:

index.php:
Código PHP:
<?php
$archivo 
= include('usuarios/'.$_SESSION['k_username'].'.txt');
krsort($archivo);//ordenamos el array
foreach($archivo as $key => $mensaje){//recorremos el array
echo '<table><tr><td><table class="tabla" width="750px"><tr><td>'.$mensaje.'</tr></td></table></tr></td><br>'; }//imprimimos el mensaje
echo '</table>';
?>
Y sólo me faltan dos cosas: un botón que vaya a un archivo eliminar.php?num=$key, y una función en dicho archivo que recoja los datos de get y elimine del array del archivo la casilla del array asociativo que lleva ese numero. Cómo puedo lograr eso?

Para el botón he intentado lo siguiente:

Código PHP:
echo '<table><tr><td><table class="tabla" width="750px"><tr><td>'.$mensaje.'<br><form name="form" action="muro/eliminar.php?num='.$key.'" method="get"><input type="submit" value="Eliminar"></form></tr></td></table></tr></td><br>'
(iría imprimido después de la variable $mensaje) pero no me envía a "muro/eliminar.php?num='.$key.'", sino a "muro/eliminar.php". Porqué me hace esto?
  #2 (permalink)  
Antiguo 01/10/2010, 08:08
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 8 años, 2 meses
Puntos: 96
Mensaje Respuesta: Eliminar elementos de un array que se encuentra en un archivo

Saludos

intenta de la siguiente manera

Código PHP:
echo <table class="tabla" width="750px">';
foreach($archivo as $key => $mensaje){//recorremos el array
echo'
<tr>
    <
td>'.$mensaje.'<br>
        <
form name="form" action="muro/eliminar.php?num='.$key.'" method="get">
            <
input type="submit" value="Eliminar">
         </
form>
      </
td>
       </
tr>';
   
}
 echo ' 
</table> ; 
El error no es tanto de programacion sino de la ubicacion de los elementos en el HTML.

Cualquier novedad lo comentas.

Hasta Pronto
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 01/10/2010 a las 08:18
  #3 (permalink)  
Antiguo 01/10/2010, 08:35
Avatar de 3nr1c  
Fecha de Ingreso: septiembre-2010
Mensajes: 398
Antigüedad: 3 años, 7 meses
Puntos: 50
Respuesta: Eliminar elementos de un array que se encuentra en un archivo

No, al final lo de la url con un get lo he resuelto así:

Código PHP:
echo '<table><tr><td><table class="tabla" width="750px"><tr><td>'.$mensaje.'<br><form name="form" action="muro/eliminar.php" method="get"><input type="hidden" name="num" value="'.$key.'"><input type="submit" value="Eliminar"></form></tr></td></table></tr></td><br>'
Ahora sólo me faltaría lo de la función que elimine el mensaje con el numero que indica el get... Qué opciones tengo?
  #4 (permalink)  
Antiguo 01/10/2010, 08:40
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 8 años, 2 meses
Puntos: 96
Respuesta: Eliminar elementos de un array que se encuentra en un archivo

Saludos.

Como me imagino que esos msjs vienen de una base de datos y que no quieres que se refresque la pantalla al momento de eliminar un item, te aconsejo utilizar ajax.

Hasta Pronto!.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 01/10/2010, 08:44
Avatar de 3nr1c  
Fecha de Ingreso: septiembre-2010
Mensajes: 398
Antigüedad: 3 años, 7 meses
Puntos: 50
Respuesta: Eliminar elementos de un array que se encuentra en un archivo

EDIT: En realidad no hace falta, si le pongo un header a la función que elimina el comentario es casi instantáneo y realmente no necesito que no se me recargue la pagina.

Es decir que me viene bien con php. Cómo podría crear esta función?

Última edición por 3nr1c; 01/10/2010 a las 08:51
  #6 (permalink)  
Antiguo 01/10/2010, 09:09
Avatar de 3nr1c  
Fecha de Ingreso: septiembre-2010
Mensajes: 398
Antigüedad: 3 años, 7 meses
Puntos: 50
Respuesta: Eliminar elementos de un array que se encuentra en un archivo

Bueno bueno investigando un poco he conseguido crear esta función :

Código PHP:
<?php 

function eliminar() {

$archivo = include('usuarios/'.$_SESSION['k_username'].'.txt');//incluimos el archivo
unset($archivo[$_GET['num']]);//quitamos lo que queremos 
$foo var_export($archivo,true);
$fp fopen("usuarios/".$_SESSION['k_username'].".txt","w+");
fwrite($fp'<?php return '.$foo.';');//escribimos de nuevo
fclose($fp);
header("location: ../index.php");//redireccionamos

}
Así que problema resuelto! ^^

Última edición por 3nr1c; 01/10/2010 a las 10:28

Etiquetas: elementos, eliminar, encuentra
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 02:25.
SEO by vBSEO 3.3.2