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

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

Última edición por Triby; 09/07/2013 a las 15:07 Razón: Eliminar dirección de correo.