Foros del Web » Programando para Internet » PHP »

Base de datos basica

Estas en el tema de Base de datos basica en el foro de PHP en Foros del Web. Hola gente, soy nuevo por aca, espero que me puedan ayudar mucho! Me presento, mi nombre es Andres y les comento que hace 1 mes ...
  #1 (permalink)  
Antiguo 30/04/2012, 14:09
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 1
Base de datos basica

Hola gente, soy nuevo por aca, espero que me puedan ayudar mucho!

Me presento, mi nombre es Andres y les comento que hace 1 mes aproximadamente empeze con un curso de programacion PHP, que se dicta 2 veces por seamana.

No vi mucho todavia, pero necesito que me ayuden con una tarea.

La tarea es: Hacer un formulario que guarde NOMBRE, APELLIDO y EDAD en una base de datos (en un txt) mediante un array.

Voy orientado en lo que debo hacer pero no se como hacer que no me reemplaze los anteriores cada vez que coloco nuevos datos.

La base mia es esta:

Cita:
<?php
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$edad=$_POST['edad'];


$base=array();
$registro=array();


$registro['nombre']=$nombre;
$registro['apellido']=$apellido;
$registro['edad']=$edad;


$base[]=$registro;
file_put_contents("base.txt" ,serialize($base));
?>
<pre>
<?php
print_r($base);
?>
</pre>
Yo habia pensado en traer lo que hay en "base.txt", de esta manera no se me reemplaza ya que guarda los datos en el proximo lugar disponible, pero al guardar por primera vez un dato me tira obviamente error en la linea que digo "unserialize" ya que no hay ningun "base.txt" creado todavia:

Cita:
<?php
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$edad=$_POST['edad'];


$base=array();
$registro=array();


$registro['nombre']=$nombre;
$registro['apellido']=$apellido;
$registro['edad']=$edad;

$base=unserialize(file_get_contents("base.txt"));
$base[]=$registro;
file_put_contents("base.txt" ,serialize($base));
?>
<pre>
<?php
print_r($base);
?>
Les comento que vi poco, no vi file_exist ni nada de eso. Solo vi que es un array, variables y como guardar y abrir un txt.
  #2 (permalink)  
Antiguo 30/04/2012, 14:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Base de datos basica

Pues, debes de usar file_exists, y empty justamente para poder controlar, que si no existe el archivo, no lo trates de leer y simplemente guardes el primer registro (así evitar el warning).

Saludos.
  #3 (permalink)  
Antiguo 30/04/2012, 15:07
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 1
Respuesta: Base de datos basica

Cita:
Iniciado por GatorV Ver Mensaje
Pues, debes de usar [URL="http://www.php.net/file_exists"]file_exists[/URL], y [URL="http://www.php.net/empty"]empty[/URL] justamente para poder controlar, que si no existe el archivo, no lo trates de leer y simplemente guardes el primer registro (así evitar el warning).

Saludos.
Hola GatorV!

Mira, justamente dije que en el curso no vi ni file_exists ni nada de eso. Tengo quye usar herramientas completamente basicas, o un bucle for, o un if pero no empty ni file_exists porque no lo vi en el curso, por mas que yo lo se, en el curso no me enseñaron y no lo puedo usar.

Tiene que haber otra forma.
  #4 (permalink)  
Antiguo 30/04/2012, 15:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Base de datos basica

Pues es trivial usarlos, pero en ese caso file_put_contents, el tercer parámetro es FILE_APPEND, que te permite en lugar de reemplazar archivos, agregar el contenido al archivo.

Saludos.
  #5 (permalink)  
Antiguo 30/04/2012, 15:23
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 1
Respuesta: Base de datos basica

Tampoco vi FILE_APPEND jaja
Bueno, les comento el jueves cual era la solucion :)

Disculpen!
  #6 (permalink)  
Antiguo 30/04/2012, 15:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Base de datos basica

Es simple:
Código PHP:
Ver original
  1. <?php
  2. $nombre=$_POST['nombre'];
  3. $apellido=$_POST['apellido'];
  4. $edad=$_POST['edad'];
  5.  
  6.  
  7. $base=array();
  8. $registro=array();
  9.  
  10.  
  11. $registro['nombre']=$nombre;
  12. $registro['apellido']=$apellido;
  13. $registro['edad']=$edad;
  14.  
  15.  
  16. $base[]=$registro;
  17. file_put_contents("base.txt" ,serialize($base), FILE_APPEND);
  18. ?> 
  19. <pre>
  20. <?php
  21. print_r($base);
  22. ?>
  23. </pre>

Eso hace que se agreguen los datos, aunque lo mejor es lo que te indique antes (verificar) ya que eso te va a hacer varias entradas que no vas a poder pasar tan sencillo por unserialize.

Saludos.
  #7 (permalink)  
Antiguo 30/04/2012, 15:46
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 1
Respuesta: Base de datos basica

Claro pero yo me refiero que en LA TAREA no puedo usar cosas que no me enseñaron en clases, por mas que las aprenda de internet.
  #8 (permalink)  
Antiguo 30/04/2012, 15:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Base de datos basica

Pues si no puedes usar nada que no hayas visto, la tienes complicada, aparte:
Cita:
La tarea es: Hacer un formulario que guarde NOMBRE, APELLIDO y EDAD en una base de datos (en un txt) mediante un array.
No dice nada de mantener los registros anteriores, por lo que tu script inicial debe de funcionar.

Saludos.

Etiquetas: formulario, registro, variables, basicos
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 18:39.