Foros del Web » Programando para Internet » PHP »

No se insertan los datos en la tabla

Estas en el tema de No se insertan los datos en la tabla en el foro de PHP en Foros del Web. Hola a tod@s, soy nuevo en el foro y relativamente nuevo en php y mysql, hasta el momento no me ha ido mal, pero hoy ...
  #1 (permalink)  
Antiguo 23/02/2014, 19:51
Avatar de sorfistaweb  
Fecha de Ingreso: febrero-2014
Ubicación: Guatemala
Mensajes: 21
Antigüedad: 10 años, 2 meses
Puntos: 0
Exclamación No se insertan los datos en la tabla

Hola a tod@s, soy nuevo en el foro y relativamente nuevo en php y mysql, hasta el momento no me ha ido mal, pero hoy tengo un problema.

Tengo un simple script para insertar datos en una tabla, pero no se por que? no se insertan, la tabla permanece vacia, tengo ya varios scripts que hacen lo mismo y funcionan, espero puedan ayudarme a encontrar mi error, a continuacion el codigo.

Código PHP:
<?php

require_once('../../scripts/configuracion.php');

if (!isset(
$_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {

// The username/password weren't entered so send the authentication headers
    
header('HTTP/1.1 401 Unauthorized');    
    
header('WWW-Authenticate: Basic realm="Hergo Soft"');
    exit(
'<h3>Hergo Soft</h3>Sorry, you must enter your username and password to log in and access '.'this page.');
            }

// Connect to the database
$dbc mysqli_connect($host$user$clave$base_datos);

// Grab the user-entered log-in data
$user_username mysqli_real_escape_string($dbctrim($_SERVER['PHP_AUTH_USER']));
$user_password mysqli_real_escape_string($dbctrim($_SERVER['PHP_AUTH_PW']));

// Look up the username and password in the database
$query "SELECT idusuario, usuario FROM usuarios WHERE usuario = '$user_username' AND contrasena = SHA('$user_password')";
$data mysqli_query($dbc$query);

if (
mysqli_num_rows($data) == 1) {

// The log-in is OK so set the user ID and username variables
$row mysqli_fetch_array($data);
$id_usuario $row['idusuario'];
$usuario $row['usuario'];
}
else {
// The username/password are incorrect so send the authentication headers
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Hergo Soft"');
exit(
'<h2>Hergo Soft</h2>Sorry, you must enter a valid username and password to log in and ' .
'access this page.');
}
// Confirm the successful log-in

$agrega_fecha strftime"%Y-%m-%d");
$agrega_idemp $_POST['id_cliente'];
$agrega_nomempresa $_POST['nombrempresa'];
$agrega_formcontacto $_POST['formacontacto'];
$agrega_resp $_POST['respuesta'];
$agrega_dijocliente $_POST['coment_cliente'];
$agrega_anotas $_POST['anotaciones'];

$conexion mysqli_connect($host,$user,$clave,$base_datos);
if(!
$conexion){
    echo 
'Lo sentimos, estamos presentando problemas';
}

//mysql_select_db($base_datos,$conexion);

$insertar "INSERT INTO clientes_contactados(idcontactado,fecha_fuecontactado,id_cliente,nombre_deempresa,id_usuario,usuario,forma_contacto,respuesta,comentario_cliente,anotaciones) 
        VALUES('idcontactado','$agrega_fecha','$agrega_idemp','$agrega_nomempresa','$id_usuario','$usuario','$agrega_formcontacto','$agrega_resp','$agrega_dijocliente','$agrega_anotas')"
;

mysqli_query($conexion,$insertar);
//$agregar_datos,$conexion);

mysqli_close($conexion);                                                                        

        
//Esto ultimo solo lo escribi para estar seguro que las variables no estuvieran vacias
        
echo $agrega_fecha; echo "<br/>";
        echo 
$agrega_idemp;echo "<br/>";
        echo 
$agrega_nomempresa;echo "<br/>";
        echo 
$id_usuario;echo "<br/>";
        echo 
$usuario;echo "<br/>";
        echo 
$agrega_formcontacto; echo "<br/>";
        echo 
$agrega_resp;echo "<br/>";
        echo 
$agrega_dijocliente;echo "<br/>";
        echo 
$agrega_anotas;

?>
  #2 (permalink)  
Antiguo 23/02/2014, 20:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No se insertan los datos en la tabla

Imprime la consulta y trata de ejecutarla en PhpMyAdmin.

También, no olvides verificar si hay error al ejecutar la consulta:

Código PHP:
Ver original
  1. mysqli_query($conexion, $insertar) or mysqli_error($conexion);
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 23/02/2014, 20:06
Avatar de sorfistaweb  
Fecha de Ingreso: febrero-2014
Ubicación: Guatemala
Mensajes: 21
Antigüedad: 10 años, 2 meses
Puntos: 0
Quiero aclarar que al inicio hay un script de autenticacion que busca el nombre de usuario y contraseña de una tabla de usuarios.
Desde la linea que dice Confirm the successful log-in, desde alli inicia el script de insercion de datos.
Espero encuentren el error, ya le di vueltas a todo y a mi me parece todo bien, estoy usando xampp para probar lo que estoy haciendo.

Gracias por responder Triby, ya he realizado la correccion de la instruccion, pero no resuelve el problema, ahora estoy comprobando en phpmyadmin.

Triby, he comprobado tambien en phpmyadmin, tal como has dicho, no hay ningun error, se agrega correctamente.

Última edición por Triby; 23/02/2014 a las 20:53 Razón: Combinar mensajes seguidos
  #4 (permalink)  
Antiguo 23/02/2014, 21:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No se insertan los datos en la tabla

Aparece algún mensaje respecto a usuario y contraseña?
- Sí; explica por favor
- No; pasa a la siguiente pregunta

Estás usando or die(mysqli_error($conexion)); al ejecutar la consulta?
- No; Qué esperas?, agrega esa parte
- Sí; pasa a la siguiente pregunta

Aparece mensaje de error?
- Sí; Cuál es el mensaje?
- No; pasa a la siguiente pregunta

Al incluir echo $insertar; aparece bien la consulta?
- No; muéstrala aquí para verla
- Sí; muéstrala y pasa a la siguiente pregunta

La consulta se ejecuta bien en PhpMyAdmin?
- No; insisto es que la muestres aquí
- Sí; tu script está loco!!!

Veo que usas dos conexiones a base de datos, una para verificar usuario/contraseña y otra para insertar datos; no es necesario (ni conveniente), siempre debes usar una sola conexión, aunque dudo que sea la causante del problema, prueba a usar $dbc en las consultas y eliminar $conexion
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 23/02/2014, 21:26
Avatar de sorfistaweb  
Fecha de Ingreso: febrero-2014
Ubicación: Guatemala
Mensajes: 21
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: No se insertan los datos en la tabla

1- No error con usuario y contraseña, incluso quite la parte de autenticacion, para comprobarlo solo asi.

2- No tenia la instruccion de mysql_error, pero ya la he agregado, no muestra ninguno

3- en phpmyadmin, no da problema

4.- al imprimir $insertar, me muestra esto

Código MySQL:
Ver original
  1. INSERT INTO clientes_contactados (idcontactado, fecha_fuecontactado, id_cliente, nombre_deempresa, id_usuario, forma_contacto, respuesta, comentario_cliente, anotaciones)
  2. VALUES ('idcontactado', '2014-02-24' ,'3', 'ajja;ljdfaj', '8', 'jorge', 'Telefono', 'Tal vez', 'esta es una prueba', 'realizada con echo')

Última edición por Triby; 23/02/2014 a las 21:34 Razón: Código en highlight
  #6 (permalink)  
Antiguo 23/02/2014, 21:32
Avatar de sorfistaweb  
Fecha de Ingreso: febrero-2014
Ubicación: Guatemala
Mensajes: 21
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: No se insertan los datos en la tabla

y si, mi script esta loco, lo tengo asi ahora

Código PHP:
<?php

$id_usuario 
'8';
$usuario 'jorge';
$agregar_fecha strftime"%Y-%m-%d");
$agregar_idcliente $_POST['id_cliente'];
$agregar_nomdeempresa $_POST['nombrempresa'];
$agregar_forcontacto $_POST['formacontacto'];
$agregar_respuesta $_POST['respuesta'];
$agregar_coment $_POST['coment_cliente'];
$agregar_notas $_POST['anotaciones'];


require_once(
'../../scripts/configuracion.php');

$conexion mysql_connect($host,$user,$clave);
if(!
$conexion){
    die (
mysql_error());
}

mysql_select_db($base_datos,$conexion);

$insertar "INSERT INTO clientes_contactados(idcontactado,fecha_fuecontactado,id_cliente,nombre_deempresa,id_usuario,forma_contacto,respuesta,comentario_cliente,anotaciones) 
    VALUES(idcontactado,'$agregar_fecha','$agregar_idcliente','$agregar_nomdeempresa','$id_usuario','$usuario','$agregar_forcontacto','$agregar_respuesta','$agregar_coment','$agregar_notas')"
;

echo 
$insertar;
mysql_query($insertar,$conexion);

mysql_close($conexion);

?>
  #7 (permalink)  
Antiguo 23/02/2014, 21:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se insertan los datos en la tabla

Un par de cosas: el primer valor a insertar no contiene un número ni un ID, sino el nombre del campo a donde se inseraría. Por otro lado estás declarando nueve valores a insertar, pero mandas diez.
Código MySQL:
Ver original
  1. INSERT INTO clientes_contactados(
  2.     idcontactado,
  3.     fecha_fuecontactado,
  4.     id_cliente,
  5.     nombre_deempresa,
  6.     id_usuario,
  7.     forma_contacto,
  8.     respuesta,
  9.     comentario_cliente,
  10.     anotaciones)
  11.     ('idcontactado', -- ??????
  12.     '2014-02-24',
  13.     '3',
  14.     'ajja;ljdfaj',
  15.     '8',
  16.     'jorge',
  17.     'Telefono',
  18.     'Tal vez',
  19.     'esta es una prueba',
  20.     'realizada con echo')
Creo que que debes revisar lo que tienes, y también verificar correctamente el tema de errores, porque eso debería estar disparando al menos un warning.

como mínimo, pon esto:
Código PHP:
mysql_query($insertar,$conexion) or die("error: ".mysql_error()); 
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 23/02/2014, 21:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No se insertan los datos en la tabla

Lo único que veo raro ahí es el valor de idcontactado, fuera de eso no se me ocurre otra cosa.

Después de editar tu código, también veo (o me parece?) que especificas 9 campos y 10 valores (sobra 'jorge'), estoy seguro que eso no debe funcionar en PhpMyAdmin!

Ouch, chocamos!
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 23/02/2014, 21:43
Avatar de sorfistaweb  
Fecha de Ingreso: febrero-2014
Ubicación: Guatemala
Mensajes: 21
Antigüedad: 10 años, 2 meses
Puntos: 0
gracias por la informacion gnzsoloyo, en ese codigo, como lo volvi a escribir, quitando cosas, me comi un dato, ya esta corregido, pero no comprendo lo del primer dato a insertar, es un id autoincrement, en otras tablas e insertado asi sin problema, pero si no es correcto, me puedes indicar cual es la forma correcta de hacerlo???

gracias triby, me comi un dato jejeje, pero al corregir, igual no funciona, con respecto al idcontactado, he aprendido que cuando es un autoincremente, lo escribo asi para insertarlo, puede que este mal y no se como deberia introducirlo o quitarlo?

Última edición por Triby; 23/02/2014 a las 21:50 Razón: Combinar mensajes seguidos
  #10 (permalink)  
Antiguo 23/02/2014, 21:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No se insertan los datos en la tabla

Por favor no publiques mensajes seguidos, si se te olvidó agregar algo, usa el botón "Editar".

Si el campo es auto incrementable, quítalo de la lista de campos y valores, o bien, coloca NULL (sin comillas) en el valor.
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 23/02/2014, 22:01
Avatar de sorfistaweb  
Fecha de Ingreso: febrero-2014
Ubicación: Guatemala
Mensajes: 21
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: No se insertan los datos en la tabla

Muchas gracias a los dos por responder, ya estoy agotado con esto, no logro solucionarlo aun, pero un descanso cae y perdon por los mensajes seguidos...
  #12 (permalink)  
Antiguo 24/02/2014, 05:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se insertan los datos en la tabla

Pregunta simple: ¿Pusiste el "or die" en la mysql_query()?
¿Devolvió algún mensaje?
Ten en cuenta que si un INSERT no se ejecuta, a nivel de BBDD sólo puede producirse por un conjunto muy acotado de causas:
1) Errores de sintaxis.
2) Violaciones de constraints NOT NULL.
3) Violaciones de FK.
4) Duplicaciones de PK o claves UNIQUE (no sería el caso).
5) Falta de permisos de usuario (no creo que sea el caso).
6) Base de datos no seleccionada.
7) Inexistencia de tablas o campos.
8) FK con dependencias circulares.

Puede que haya algunas otras causas más pero no muchas.
En cualquier caso, estas situaciones disparan errores o bien warnings. Cualquiera de las dos cosas debería ser visible poniendo en la ejecución lo ya indicado.... cosa que no has aclarado debidamente si lo haces, y por lo que se ve en tu último codigo, no lo has puesto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: fecha, mysql, select, tabla, usuarios, variable
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 08:12.