Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No inserta valores en la tabla

Estas en el tema de No inserta valores en la tabla en el foro de PHP en Foros del Web. Buenas compis vecinos, vengo de un tiempo sin tocar php y mysql y ahora que he vuelto con el para un miniproyecto me encuentro con ...
  #1 (permalink)  
Antiguo 08/03/2015, 13:59
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 8 meses
Puntos: 468
No inserta valores en la tabla

Buenas compis vecinos, vengo de un tiempo sin tocar php y mysql y ahora que he vuelto con el para un miniproyecto me encuentro con errores que no se localizar.

El problema es que no inserta los valores en la tabla de la base de datos.

Código HTML:
Ver original
  1. <form method="POST" action="">
  2.         Nombre: <input type="text" id="usuario" name="usuario"/><br/><br/>
  3.         Categoría: <select name="categoria" id="categoria">
  4.                         <option value="animales" selected>Animales</option>
  5.                         <option value="amigos" >Amigos</option>
  6.                         <option value="parejas">Parejas</option>
  7.                         <option value="verdes">Verdes</option>
  8.                     </select><br/><br/>
  9.         El chiste:<br/>
  10.         <textarea name="chiste" id="chiste" value="chiste" cols="50" rows="6"></textarea><br/>
  11.         <input type="submit" id="enviar" name="enviar" value="enviar"/>
  12.         </form>

Archivo para conectar a la BD
Código PHP:
Ver original
  1. <?php
  2.  
  3. $link = mysqli_connect("host","user","password","bdname") or die ("No se ha podido conectar a la base de datos. " . mysqli_error($link));
  4. return $link;
  5.  
  6. ?>

Código PHP:
Ver original
  1. La conexión a la BD la realizo en otro archivo al cual llamo anteriormente.
  2.  
  3. <?php
  4.         $nombre = $_POST["usuario"];
  5.         $categoria = $_POST["categoria"];
  6.         $chiste = $_POST["chiste"];
  7.         $fecha = date("d-m-Y");
  8.         if($_POST["enviar"]) {
  9.             $insertar = "INSERT INTO CHISTES (id, categoria, usuario, , fecha,  texto) VALUES ('', " . $categoria . "," .  $usuario . "," . $fecha. "," . $chiste . ")";
  10.             mysqli_query($link, $insertar);
  11.         }
  12.  
  13.         ?>

Seguro que vosotros localizáis el problema en 1 minuto pero como no me salta ningún error al enviar el formulario no se donde está el problema.
Mil gracias
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Última edición por rodrypaladin; 08/03/2015 a las 15:46
  #2 (permalink)  
Antiguo 08/03/2015, 16:23
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: No inserta valores en la tabla

¿Has intentado ejecutar la consulta en phpMyAdmi pasando valores en lugar de variables?
Ahí podrías detectar si hay error en la construcción de la sql.
Y por otro lado un var_dump par para ver que valores pasan las variable.
Como sugerencia.
Un saludo.
  #3 (permalink)  
Antiguo 08/03/2015, 16:26
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: No inserta valores en la tabla

Otra cosa:
usas
Código PHP:
Ver original
  1. if($_POST["enviar"]){}
quizá deberías usar
Código PHP:
Ver original
  1. isset($_POST["enviar"]){}
  #4 (permalink)  
Antiguo 08/03/2015, 16:36
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 8 meses
Puntos: 468
Respuesta: No inserta valores en la tabla

Por lo que parece la consulta está bien construida, lo he probado ejecutandolo desde myphpadmin y ha funcionado.

también he probado con isset($_POST["enviar]) {} pero pasa lo mismo: nada
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #5 (permalink)  
Antiguo 08/03/2015, 16:43
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 8 meses
Puntos: 468
Respuesta: No inserta valores en la tabla

al enviar el formulario el var_dump devuelve esto:

array(4) { ["usuario"]=> string(5) "Rodry" ["categoria"]=> string(8) "animales" ["chiste"]=> string(19) "ddddddddddddddddddd" ["enviar"]=> string(6) "enviar" }

No veo que haya ahí anda mal, y la función date() también me muestra bien la fecha... No se que puede ser
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #6 (permalink)  
Antiguo 08/03/2015, 16:49
 
Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: No inserta valores en la tabla

En el envió del formulario lo tienes vacío.

<form method="POST" action="archivo.php">

Pon lo de isset también

En el insert el id es autoincremento no? No hace falta poner el campo. Aparte hay fallos al escribir el insert y alguna cosa que sobra. Intenta con esto.

¿La tabla CHISTES la tienes en mayúsculas en la BD?

$link->query("INSERT INTO CHISTES ( categoria, usuario, fecha, texto ) VALUES ('$categoria','$usuario','$fecha','$chiste')")

¿Por cierto, la fecha se lo pasas tu o automáticamente la base de datos?
  #7 (permalink)  
Antiguo 08/03/2015, 16:54
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 8 meses
Puntos: 468
Respuesta: No inserta valores en la tabla

Tengo puesto isset actualmente y aunque aquí no está puesto el action también le puse el nombre del archivo a action="archivo.php" y nada. Si lo tengo en mayúsculas también. Me estoy desesperandooooo ejejeje

La fecha la paso yo por medio de la funcion date("d-m-Y") pero he hecho un echo de todos los datos del formulario y los muestra correctamente
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #8 (permalink)  
Antiguo 08/03/2015, 16:57
 
Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: No inserta valores en la tabla

No te funciono el insert?

Intenta con esto... A ver si te sale el error

if ($link->query("INSERT INTO CHISTES ( categoria, usuario, fecha, texto ) VALUES ('$categoria','$usuario','$fecha','$chiste')")){
}
else{
$link->error;
}
  #9 (permalink)  
Antiguo 08/03/2015, 17:05
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 9 meses
Puntos: 15
Respuesta: No inserta valores en la tabla

por que ??

VALUES ('',

---- o en otras palabras
que tipo de datos es id ?
int ? auto ? string ?? ('')
  #10 (permalink)  
Antiguo 08/03/2015, 18:48
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 8 meses
Puntos: 468
Respuesta: No inserta valores en la tabla

Ahí estaba el error. Mil gracias
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Etiquetas: fecha, formulario, html, inserta, mysql, select, tabla
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 09:12.