Foros del Web » Programando para Internet » PHP »

Insertar datos en base de datos

Estas en el tema de Insertar datos en base de datos en el foro de PHP en Foros del Web. Hola a todos, Bueno hice este simple formulario para insertar unos datos a la base de datos, el problema es que lleno todas las casillas ...
  #1 (permalink)  
Antiguo 01/10/2010, 10:30
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Insertar datos en base de datos

Hola a todos,

Bueno hice este simple formulario para insertar unos datos a la base de datos, el problema es que lleno todas las casillas y al hacer click en Enviar no pasa nada, es decir... los datos no se agregan a la base de datos.

Se que no le puse ningun else para que me indique cuando no se agregan y tal, digo que no se agregan porque lo comprobe directamente desde phpmyadmin.

Aqui les dejo el codigo:

Código PHP:
Ver original
  1. <?
  2. // datos de configuracion
  3. $ip = 'localhost';
  4. $usuario = 'xxxxxxx';
  5. $password = 'xxxxxx';
  6. $db_name = 'xxxxxxx';
  7. // conectamos con la db
  8. $conn = mysql_pconnect($ip,$usuario,$password) or die();
  9. // seleccionamos la base de datos
  10. $huboerror = mysql_select_db($db_name,$conn) or die();
  11. // si se envia el formulario
  12. if ( !empty($_POST['submit']) ) {
  13. $query = "INSERT INTO eventos (nombre,link,dia,mes,anio) values ('{$_POST['nombre']}','{$_POST['link']}','{$_POST['dia']}','{$_POST['mes']}','{$_POST['anio']}')";
  14. $response = mysql_query($query, $conn);
  15. }
  16. ?>
  17. <html>
  18. <form action="nuevoevento.php" method="post">
  19. Nombre del Evento: <input id="nombre" type="text" name="nombre" /><br />
  20. Link en el foro: <input id="link" type="text" name="link" /><br />
  21. Fecha: <input type="text" name="dia" id="dia"> / <input type="text" name="mes" id="mes"> / <input type="text" name="anio" id="anio"><br />
  22. <button type="submit" name="submit">Enviar</button>
  23. </form>
  24. </html>

Y una cosa más... quisiera saber como hago para mostrar los datos registrados de esta manera:

Código HTML:
<a href="$link" target="_blank">$nombre</a> $dia - $mes - $anio
Gracias desde ya :)
  #2 (permalink)  
Antiguo 01/10/2010, 10:41
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Insertar datos en base de datos

Saludos.


Cita:
Se que no le puse ningun else para que me indique cuando no se agregan y tal, digo que no se agregan porque lo comprobe directamente desde phpmyadmin.
Que comprobaste en el phpmyadmin la variable impresa $query?

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 01/10/2010, 10:43
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Insertar datos en base de datos

esta linea:
Código HTML:
Ver original
  1. $conn = mysql_pconnect($ip,$usuario,$password) or die();

tiene una de p de mas, seria asi:
Código HTML:
Ver original
  1. $conn = mysql_connect($ip,$usuario,$password) or die();
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #4 (permalink)  
Antiguo 01/10/2010, 10:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Insertar datos en base de datos

Muchas gracias por sus respuestas!

Cita:
Iniciado por Nano_ Ver Mensaje
Que comprobaste en el phpmyadmin la variable impresa $query?
Si, comprobé si los datos se habian agregado a la base de datos pero sige estando vacia la tabla.

Cita:
Iniciado por zapt142 Ver Mensaje
esta linea:
Código HTML:
Ver original
  1. $conn = mysql_pconnect($ip,$usuario,$password) or die();

tiene una de p de mas, seria asi:
Código HTML:
Ver original
  1. $conn = mysql_connect($ip,$usuario,$password) or die();
Hice ese cambio pero aún no se agregan los datos.
  #5 (permalink)  
Antiguo 01/10/2010, 10:52
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Insertar datos en base de datos

cambia esta linea

Código HTML:
Ver original
  1. $response = mysql_query($query, $conn);

por esta:

Código HTML:
Ver original
  1. $response = mysql_query($query, $conn) or die(mysql_error());
checa que error te muestra y nos comentas
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #6 (permalink)  
Antiguo 01/10/2010, 10:55
Avatar de CazaresLuis  
Fecha de Ingreso: septiembre-2010
Ubicación: Distrito Federal
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Insertar datos en base de datos

Hola una pregunta, esas {} que pones en el sql para que son?

Prueba esto:

$result = sprintf( "INSERT INTO eventos SET nombre='%s',link='%s',dia=%d,mes=%d,anio=%d",
$_POST['nombre'],$_POST['link'],$_POST['dia'],$_POST['mes'],$_POST['anio'] );

Veo que manejas las fechas separadas, supongo que es por los métodos de busqueda que realizaras en tu DB, te sugiero que uses un solo campo datetime, con mysql puedes realizar busquedas separando por cada uno de esos rubros

Saludos

Última edición por GatorV; 04/10/2010 a las 16:01
  #7 (permalink)  
Antiguo 01/10/2010, 10:57
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Insertar datos en base de datos

Hola de nuevo,

Hice el cambio pero no me da ningún error, tampoco se agregan los datos.

Tal vez el problema es la tabla, aqui te dejo la estructura:

Código:
CREATE TABLE eventos (
ID_evento int(11) DEFAULT '0' NOT NULL auto_increment,
nombre varchar(100),
link varchar(100),
dia varchar(2),
mes varchar(2),
anio varchar(4),
PRIMARY KEY (ID_evento),
UNIQUE ID_evento (ID_evento)
);
  #8 (permalink)  
Antiguo 01/10/2010, 10:58
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Insertar datos en base de datos

Saludos

Creo que es mas sencillo que imprimas la variable y las postees por que asi estamos adivinando y el msj de error como te indica zapt142 si esta mostrando alguno.

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #9 (permalink)  
Antiguo 01/10/2010, 11:04
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Insertar datos en base de datos

Cita:
Iniciado por CazaresLuis Ver Mensaje
Hola una pregunta, esas {} que pones en el sql para que son?

Prueba esto:

$result = sprintf( "INSERT INTO eventos SET nombre='%s',link='%s',dia=%d,mes=%d,anio=%d",
$_POST['nombre'],$_POST['link'],$_POST['dia'],$_POST['mes'],$_POST['anio'] );

Veo que manejas las fechas separadas, supongo que es por los métodos de busqueda que realizaras en tu DB, te sugiero que uses un solo campo datetime, con mysql puedes realizar busquedas separando por cada uno de esos rubros

Saludos

@CazaresLuis
www.cazaresluis.com

Lo probe y sige sin funcionar :S


Sobre lo de la fecha, lo que quiero es mostrar la fecha de la actividad y creo que con datetime se muestra la fecha en la que se agregaron los datos.

Gracias a todos por su ayuda espero no estar molestando mucho :)
  #10 (permalink)  
Antiguo 01/10/2010, 11:05
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Insertar datos en base de datos

una pregunta de donde sacaste la etiqueta <button>??
Bueno en mi caso jamas habia visto o escuchado de ella, para poner un boton es asi:
Código HTML:
Ver original
  1. <input type="button" name="btn" value="Aceptar" />

y para poner un boton tipo submit para enviar el formulario como en tu caso necesitas es asi:
Código HTML:
Ver original
  1. <input type="submit" name="submit" value="Enviar" />
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #11 (permalink)  
Antiguo 01/10/2010, 11:12
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Insertar datos en base de datos

Cita:
Iniciado por zapt142 Ver Mensaje
una pregunta de donde sacaste la etiqueta <button>??
Bueno en mi caso jamas habia visto o escuchado de ella, para poner un boton es asi:
Código HTML:
Ver original
  1. <input type="button" name="btn" value="Aceptar" />

y para poner un boton tipo submit para enviar el formulario como en tu caso necesitas es asi:
Código HTML:
Ver original
  1. <input type="submit" name="submit" value="Enviar" />
Muchas gracias ya funciono :) en un principio intente con input type submit pero no funcionó, entonces recordé que habia un código que llevaba button, asi que puse ese.

Una última pregunta:

Cómo hago para mostrar una cantidad X de eventos (en mi caso) según su ID?

Mi intención es lograr algo asi:

Código HTML:
<a href="$link" target="_blank">$nombre</a> $dia - $mes - $anio
Muchas gracias una vez más :)
  #12 (permalink)  
Antiguo 01/10/2010, 11:22
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Insertar datos en base de datos

Código HTML:
Ver original
  1. <a href="$link" target="_blank">$nombre</a> $dia - $mes - $anio

creo que te refieres a tener un listado con los eventos y tener un link para mostrar los detalles de ese evento no?

harias una consulta a tu bd

Código PHP:
$sql "select  * from eventos";
$res mysql_query($sql,$conn) or die(mysql_error()); 
despues tendrias que utilizar un ciclo para mostrar todos los resultados como por ejemplo:

Código PHP:
while($row mysql_fetch_array($res)){ 
y dentro del ciclo pondrias la liga un ejemplo seria:

Código PHP:
echo '<a href="detalle_evento.php?id_evento="'.$row['id_evento'].'">'.$row['nombre'].'</a>'
espero te haya dado una idea
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #13 (permalink)  
Antiguo 01/10/2010, 11:57
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Insertar datos en base de datos

@zapt142

Me sirvio! muchisimas gracias :)

Lo único que quisiera es que los eventos con número de ID más alto se muestren arriba y limitar a 5 eventos como máximo.

Agradesco mucho tu ayuda y la de todos.
  #14 (permalink)  
Antiguo 01/10/2010, 12:07
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Insertar datos en base de datos

para mostrar solamente 5 registros, y mostrar los más altos es decir los más nuevos ya que tu id es autoincrement creo que quedaria asi:

Código PHP:
$sql "select  * from eventos order by id_evento desc limit 5"
prueba y comentas
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #15 (permalink)  
Antiguo 01/10/2010, 12:12
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Insertar datos en base de datos

Cita:
Iniciado por zapt142 Ver Mensaje
para mostrar solamente 5 registros, y mostrar los más altos es decir los más nuevos ya que tu id es autoincrement creo que quedaria asi:

Código PHP:
$sql "select  * from eventos order by id_evento desc limit 5"
prueba y comentas
Funciona a la perfección!

Muchisimas gracias por tu tiempo
  #16 (permalink)  
Antiguo 01/10/2010, 12:23
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Insertar datos en base de datos

De nada, estamos para ayudarnos
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---

Etiquetas: Ninguno
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 15:38.