Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/07/2013, 15:10
raulgranadosraul
 
Fecha de Ingreso: julio-2013
Mensajes: 174
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Problema con campo hidden en formulario

Cita:
Iniciado por raulgranadosraul Ver Mensaje
Buenos días, os escribo a ver si alguien me puede echar una mano con un error de programación que no logro corregir. Os cuento. Estoy haciendo en una página un apartado de noticias con mysql y php.
Tengo una pagina llamada noticias.php en la que se muestran todas las noticias que hay en la BD. Al clickar sobre una noticia te lleva a la pagina noticia.php con el id de la noticia que estamos clickando. Dentro de esta página hay un sistema de comentarios para esa noticia.

Mi problema es que al entrar en noticia.php le paso el id de la noticia, hasta ahi todo correcto, pero cuando hago un comentario tengo un campo hidden en el que se guarda la id de la noticia. Cuando inserto un comentario en la BD se me inserta todo bien menos el id. Imagino que será porque al venir de una página anterior no lo recoge o algo asi. Os paso el codigo php a ver si me podéis decir algo:

Este es el insert que hago ala BD para el comentario:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO tblcomentarios (nombre, correo, telefono, mensaje, fecha, hora, idnoticia) VALUES (%s, %s, %s, %s, NOW(), CURRENT_TIME(), %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['correo'], "text"),
GetSQLValueString($_POST['telefono'], "text"),
GetSQLValueString($_POST['mensaje'], "text"),
GetSQLValueString($_POST['fecha'], "date"),
GetSQLValueString($_POST['hora'], "date"),
GetSQLValueString($_POST['idnoticia'], "int"));


Y en el campo hidden del formulario tengo esto:

input type="hidden" name="idnoticia" value="<?php echo $id_not; ?>"

------- $id_not es igual a $row_Recordset1['id']; que es el id de la noticia que se ha pasado por GET , pero si pongo $row_Recordset1['id']; me hace una entrada NULL.

He solucionado el NULL cambiando el valor del hidden por $id_not y cambiando el parámetro %s que corresponde al INSERT del id oculto por $id_not también. Queda asi---------

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO tblcomentarios (nombre, correo, telefono, mensaje, fecha, hora, idnoticia) VALUES (%s, %s, %s, %s, NOW(), CURRENT_TIME(), '".$id_not."')",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['correo'], "text"),
GetSQLValueString($_POST['telefono'], "text"),
GetSQLValueString($_POST['mensaje'], "text"),
GetSQLValueString($_POST['fecha'], "date"),
GetSQLValueString($_POST['hora'], "date"),
GetSQLValueString($_POST['idnoticia'], "int"));

y el hidden-----------

input type="hidden" name="idnoticia" value="<?php echo $id_not; ?>"


El problema es que ahora si me hace una entrada en la BD pero me la hace con valor 0, no me inserta el id de la noticia, con lo que no me muestra el resultado ya que no hay comentarios con id=0.

No se si entenderá bien toda esta explicación, pero la verdad es que me estoy volviendo loco buscando la solucion y no la encuentro. Por favor si alguien me puede ayudar, estaría muy agradecido.

Espero me podáis ayudar y muchas gracias de antemano.
Raúl
Borrado el email. Gracias una vez más.
A ver si alguien me puede ayudar con el problema del php.

He estado buscando más información y parece que debería poner un echo en $id_not pero no se donde colocarlo , ya que en el form le tengo puesto el echo pero en el INSERT, en los valores... ¿puede ser ahi?, no se como colocarlo