Foros del Web » Programando para Internet » PHP »

no escribe en la bd

Estas en el tema de no escribe en la bd en el foro de PHP en Foros del Web. Código PHP: <?php     $nombre  =  $_POST [ 'nombre' ];      $apellido  =  $_POST [ 'apellido' ];      $cumple  =  $_POST [ 'cumple' ];      $direccion  ...
  #1 (permalink)  
Antiguo 09/08/2006, 20:41
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 12 años, 6 meses
Puntos: 0
no escribe en la bd

Código PHP:
<?php
    $nombre 
$_POST['nombre'];
    
$apellido $_POST['apellido'];
    
$cumple $_POST['cumple'];
    
$direccion $_POST['direccion'];
    
$email $_POST['email'];
    
$telefono $_POST['telefono'];
    
$celular $_POST['celular'];
    
$oficina $_POST['oficina'];
    
$ext $_POST['ext'];
    
$otro $_POST['otro'];
    
$categoria $_POST['categoria'];
    
$comentario $_POST['comentario'];

 
error_reporting(E_ALL);
 
$dbh=mysql_connect ("localhost""agenda""080188") or die ('I cannot connect to the database because: ' mysql_error());
 
mysql_select_db ("agenda");
 
 
$sql "insert into directorio (nombre,apellido,cumple,direccion,email,telefono,celular,oficina,ext,otro,categoria,comentario) values ('$nombre','$apellido','$cumple','$direccion','$email','$telefono','$celular','$oficina','$ext','$otro','$categoria','$comentario')";

$query mysql_query ($sql,$dbh);

    if (
$query == true)
        echo 
"$nombre $apellido se a ingresado correctamente. Gracias.";
    else 
        echo 
"$nombre $apellido no se a podido ingresar a la base de datos, vuelva a intentarlo o contacte el administrador del sistema.";
?>
no quiere escribir en la base de datos que puede ser??? gracias!!!
estoy aprendiendo php
__________________
Edgar Nadal
  #2 (permalink)  
Antiguo 09/08/2006, 20:54
 
Fecha de Ingreso: junio-2001
Ubicación: Cd. Madero, Tam
Mensajes: 83
Antigüedad: 16 años, 5 meses
Puntos: 0
Si muestras el mensaje de error es mas facil identificar la falla
  #3 (permalink)  
Antiguo 09/08/2006, 21:15
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 12 años, 6 meses
Puntos: 0
lo que me gusta es que no muestre ningun mensaje de error, si miras tengo un if .. else y si no hace lo que dice if entonces me retorna else y eso es lo k pasa...
no da ningun error simplemente no escribe en la base de datos..
gracias
__________________
Edgar Nadal
  #4 (permalink)  
Antiguo 09/08/2006, 22:52
 
Fecha de Ingreso: agosto-2006
Mensajes: 44
Antigüedad: 11 años, 4 meses
Puntos: 1
Hola, lo único que se me ocurre es que estas ingresando todos tus datos a la BD usando comillas simples ' ', si es que tienes algún campo de la tabla (`directorio`) de la BD (`agenda`) que no sea tipo texto (CHAR, VARCHAR, TEXT, etc.) entonces hay un error...

HA
  #5 (permalink)  
Antiguo 09/08/2006, 23:13
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Buenas, podrías probar las funciones mysql_error() y mysql_errno(), que te devuelven una descripción de los errores generados por una consulta (y un código, la segunda).

El código podría ser algo así, al final del if ... else:

Código PHP:
echo "nro error: " mysql_errno($dbh) . " -- descripcion: " mysql_error($dbh) . "<br>"
Más sobre estas funciones en:

http://ar.php.net/manual/es/function.mysql-error.php

Suerte
Califa
  #6 (permalink)  
Antiguo 10/08/2006, 00:27
Avatar de tupajz  
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 11 años, 4 meses
Puntos: 1
Creo que deberías revisar la tabla directorio de tu base de datos agenda y ver que tipo de atributos son, por ejemplo tus atributos telefono y celular tal vez sean de tipo int es decir enteros numéricos, en ese caso al momento de realizar tu insert no deberías poner dichos atributos entre comillas, la verdad no sé que mas podría ser aparentemente todo se ve bien al menos en el script que pusiste.

Un saludo.
  #7 (permalink)  
Antiguo 10/08/2006, 04:03
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Cita:
Iniciado por EdgarN Ver Mensaje
lo que me gusta es que no muestre ningun mensaje de error, si miras tengo un if .. else y si no hace lo que dice if entonces me retorna else y eso es lo k pasa...
no da ningun error simplemente no escribe en la base de datos..
gracias
Eso es lógico pero mientras depuras no está de más q uses

Código PHP:
$query mysql_query ($sql,$dbh) or die ("La consulta fallo. El error fue: ".mysql_error()); 
Luego lo borras pero para depurar es necesario saber los errores que pueda haber.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #8 (permalink)  
Antiguo 10/08/2006, 10:59
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 12 años, 6 meses
Puntos: 0
hice lo que me dijo djreficul

miren lo que me devolvio


Notice: Undefined variable: dbh in C:\wamp\www\php\agenda\tinta.php on line 39

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\php\agenda\tinta.php on line 39
La consulta fallo. El error fue:
__________________
Edgar Nadal
  #9 (permalink)  
Antiguo 10/08/2006, 11:00
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 12 años, 6 meses
Puntos: 0
les voy a poner la tabla para que vean si hay algun error

Código PHP:
CREATE TABLE `directorio` (
  `
nombretext NOT NULL,
  `
apellidotext NOT NULL,
  `
cumpletext NOT NULL,
  `
direcciontext NOT NULL,
  `
telefonotext NOT NULL,
  `
celulartext NOT NULL,
  `
oficinatext NOT NULL,
  `
exttext NOT NULL,
  `
otrotext NOT NULL,
  `
categoriatext NOT NULL,
  `
comentariotext NOT NULL
ENGINE=InnoDB DEFAULT CHARSET=latin1
__________________
Edgar Nadal
  #10 (permalink)  
Antiguo 10/08/2006, 11:20
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
El error q te dice es q la variable $dbh no está definida aunque en tu código se ve claro q sí:

Cita:
$dbh=mysql_connect ("localhost", "agenda", "080188") or die ('I cannot connect to the database because: ' . mysql_error());
Si eso falla no podrá ejecutar la consulta... Lo raro es q pase esa línea y luego te diga q no está definida... xq si la pasa es q es un link válido... y q 2 líneas más abajo te diga q no es un link válido... Raro raro raro... ¿falta algo en el código q expusiste?
__________________
La muerte es un camino que todos debemos recorrer...
  #11 (permalink)  
Antiguo 10/08/2006, 11:22
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 12 años, 6 meses
Puntos: 0
ahi no falta nada que yo sepa osea eso es todo lo que e echo!!!!

no se porque pasara esto

e reescrito el codigo 2 veces y sigue igual:(

que problema sera!!!
__________________
Edgar Nadal
  #12 (permalink)  
Antiguo 10/08/2006, 11:27
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Debajo de donde defines $dbh pon

Código PHP:
echo "Link: $dbh<br>"
Si te da como resultado

Link:

es q no conecta con la base de datos.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #13 (permalink)  
Antiguo 10/08/2006, 11:32
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 12 años, 6 meses
Puntos: 0
Link: Resource id #2
La consulta fallo. El error fue: Unknown column 'email' in 'field list'

esa fue la respuesta
__________________
Edgar Nadal
  #14 (permalink)  
Antiguo 10/08/2006, 11:33
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 2
hola

mira comoprimera recomendacio sugiero q le coloques una llave primaria a la tabla ya q luedo no podras accesar facilmente a los datos,

en la linea
Código PHP:
$query mysql_query ($sql,$dbh); 
cambiala por
Código PHP:
$query mysql_query ($sql) or die("error al isertar "mysql_error()); 
ya q el error esta en la variable de conexion, si usas la linea q te di se toma por defecto la conexion q previamente fue creada exitosamente


Saludos.
  #15 (permalink)  
Antiguo 10/08/2006, 11:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 2
aah

fijate bien q tienes una columna de mas llamada email en tu sentencia sql

ya q el campo email no esta en la tabla de la base de datos
  #16 (permalink)  
Antiguo 10/08/2006, 11:38
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Cita:
Iniciado por EdgarN Ver Mensaje
Link: Resource id #2
La consulta fallo. El error fue: Unknown column 'email' in 'field list'

esa fue la respuesta
Pues ahora sí q está claro por qué falla la consulta...

El campo email no está en la tabla q expusiste.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #17 (permalink)  
Antiguo 10/08/2006, 11:40
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Cita:
Iniciado por Dwar Ver Mensaje
hola

mira comoprimera recomendacio sugiero q le coloques una llave primaria a la tabla ya q luedo no podras accesar facilmente a los datos,

en la linea
Código PHP:
$query mysql_query ($sql,$dbh); 
cambiala por
Código PHP:
$query mysql_query ($sql) or die("error al isertar "mysql_error()); 
ya q el error esta en la variable de conexion, si usas la linea q te di se toma por defecto la conexion q previamente fue creada exitosamente


Saludos.
No sé... yo no estaría de acuerdo... Si trabajas sólo con una conexión a una base de datos sí... pero si necesitas usar varias conexiones es mejor poner a cual de ellas te refieres.

A veces por ahorrar líneas de código podemos meternos en berenjenales y no saber el por qué de algunos errores... Es mejor tenerlo todo asignado y ordenado. Aunque esta es mi opinión y mi forma de trabajar, claro.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #18 (permalink)  
Antiguo 10/08/2006, 11:43
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 12 años, 6 meses
Puntos: 0
muchas gracias amigos...
nos mantendremos en contacto ya todo esta bien gracias!!!!
__________________
Edgar Nadal
  #19 (permalink)  
Antiguo 10/08/2006, 12:00
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 2
Cita:
Iniciado por djreficul Ver Mensaje
No sé... yo no estaría de acuerdo... Si trabajas sólo con una conexión a una base de datos sí... pero si necesitas usar varias conexiones es mejor poner a cual de ellas te refieres.

A veces por ahorrar líneas de código podemos meternos en berenjenales y no saber el por qué de algunos errores... Es mejor tenerlo todo asignado y ordenado. Aunque esta es mi opinión y mi forma de trabajar, claro.

Saludos.
muy buen punto agradesco la observacion la tendre mente para mis futoran aplicaciones, es q yo solo he trabajado con 1 conexio hasta ahora
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:29.