Foros del Web » Programando para Internet » PHP »

No me inserta datos en base de datos

Estas en el tema de No me inserta datos en base de datos en el foro de PHP en Foros del Web. Hola, tengo una página montada para insertar datos a una base de datos, y lo he hecho siguiendo al pie de la letra un conocido ...
  #1 (permalink)  
Antiguo 23/10/2008, 12:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 8 meses
Puntos: 1
No me inserta datos en base de datos

Hola, tengo una página montada para insertar datos a una base de datos, y lo he hecho siguiendo al pie de la letra un conocido tutorial, pero no me los inserta. Agradecería infinitamente si alguien me ayuda a localizar el error o la carencia de algo:

// Añadimos condicional para advertir de los datos obligatorios:
if (!$HTTP_POST_VARS['formulario1'] || !$HTTP_POST_VARS['formulario2'] || !$HTTP_POST_VARS['formulario3']) {
echo "Los 3 campos son obligatorios<br>";
exit;
}

// Hacemos que mysql omita los caracteres de control de los campos introducidos:
$autor=addslashes($HTTP_POST_VARS['formulario1]);
$año=addslashes($HTTP_POST_VARS['formulario2']);
$observaciones=addslashes($HTTP_POST_VARS['formulario3']);


include("DOCUMENTROOT/../conectardb.php"); // conectamos a la base de datos

// Añadimos datos a la base de datos


$query = "INSERT INTO tabla (autor,año,observaciones) VALUES ('$autor', '$año', '$observaciones')";

if(mysql_query($query)) {
echo "Datos insertados correctamente, si quieres puedes mostrar un mensaje o redireccionar con Header";
echo "Se han insertado los siguientes datos:";


} else {
echo "Los datos no pudieron ser insertados correctamente";
}



Muchas gracias por anticipado y un cordial saludo.
  #2 (permalink)  
Antiguo 23/10/2008, 12:29
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: No me inserta datos en base de datos

Te recomiendo uses $_POST en vez de $HTTP_POST_VARS

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 23/10/2008, 12:30
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: No me inserta datos en base de datos

Hola Chechux, cómo vas??

1. Estás seguro que te conecta a la DB??
2. Haz lo que te dice the_web_saint.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 24/10/2008, 10:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: No me inserta datos en base de datos

Buenas tardes a todos. Antes de todo gracias a ambos, pero no me funciona :/

He cambiado el texto que me indicabais, y además he comprobado que me conecta correctamente a la base de datos (añadiendo una consulta). El código por tanto queda así:


// Añadimos condicional para advertir de los datos obligatorios:
if (!$_POST['formulario1'] || !$_POST['formulario2'] || !$_POST['formulario3']) {
echo "Los 3 campos son obligatorios<br>";
exit;
}

// Hacemos que mysql omita los caracteres de control de los campos introducidos:
$autor=addslashes($_POST['formulario1']);
$año=addslashes($_POST['formulario2']);
$observaciones=addslashes($_POST['formulario3']);


include("DOCUMENTROOT/../conectardb.php");

// Añadimos datos a la base de datos ( en el campo insert, pondríamos delete o update según corresponda):

$querydb = mysql_query("select * from tabla") or die("Error en query:". mysql_error() );

// Devolvemos los datos sacados de la base, (sí que devuelve los datos).
if(mysql_num_rows($querydb) > 0){
$row = mysql_fetch_array($querydb);
echo stripslashes($row['autor'])."-";
echo stripslashes($row['año'])."<br>";
}


$query = "INSERT INTO tabla (autor,año,observaciones) VALUES ('$autor', '$año', '$observaciones')";

if(mysql_query($query)) {
echo "Datos insertados correctamente, si quieres puedes mostrar un mensaje o redireccionar con Header";

} else {
echo "Los datos no pudieron ser insertados correctamente";
}



Pues eso, siempre me devuelve que los datos no pudieron insertarse. De hecho luego lo miro en mysql y efectivamente no se añaden los registros. A ver si supiérais que podría ser.....

Gracias y un saludo
  #5 (permalink)  
Antiguo 24/10/2008, 10:37
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: No me inserta datos en base de datos

Hola, para poder ayudarte.. Postea el error que te muestra ....

puedes modificar aqui
$result=mysql_query($query) or die mysql_errno();
if($result) {
echo "Correcto";
}

y quita el else

Saludos...
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #6 (permalink)  
Antiguo 24/10/2008, 10:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: No me inserta datos en base de datos

Buenas buenas, no me muestra error, como tengo puesto el último condicional if para que, en teoría, me verifique la inserción de datos, siempre me devuelve "Los datos no pudieron ser insertados correctamente".

Gracias y un saludo
  #7 (permalink)  
Antiguo 24/10/2008, 10:42
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: No me inserta datos en base de datos

presiona F5 ...
actualize. la respuesta :D
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #8 (permalink)  
Antiguo 24/10/2008, 10:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: No me inserta datos en base de datos

Eerrrr nop xD, la página php está grabada con las modificaciones y el explorador bien actualizado.
  #9 (permalink)  
Antiguo 24/10/2008, 11:04
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: No me inserta datos en base de datos

Vale.... ya lo he conseguido..... era por las Ñ de aÑo jeje. Ahora me entero que o php o mysql no interpreta las ñs O_o

No obstante, me gustaría preguntaros a Carlx y The Web Saint por favor, aunque sea brevemente, la diferencia entre recoger las variables como $HTTP_POST_VARS o $_POST, para tenerlo en cuenta en futuras ocasiones.

Muchas gracias y un saludo.
  #10 (permalink)  
Antiguo 24/10/2008, 12:10
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: No me inserta datos en base de datos

http://www.desarrolloweb.com/faq/dif...rs_y_post.html

http://www.forosdelweb.com/f18/probl...t_vars-613158/
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #11 (permalink)  
Antiguo 24/10/2008, 13:05
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 18 años, 9 meses
Puntos: 1
Respuesta: No me inserta datos en base de datos

No uses ñ a la hora de definir variables ni campos en la BBDD ya que puede que te falle.
  #12 (permalink)  
Antiguo 24/10/2008, 13:22
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: No me inserta datos en base de datos

Hola Chechux, tu duda ha sido respondida por the_web_saint...

Me alegra que lo hayas solucionado

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 06:01.