Foros del Web » Programando para Internet » PHP »

Problemas al guardar los datos de un formulario con PHP y mySQL

Estas en el tema de Problemas al guardar los datos de un formulario con PHP y mySQL en el foro de PHP en Foros del Web. Hola, soy programador desde hace años pero novato aún en PHP, JS, ... Estoy creando un sitio y, he tomado código de otro sitio similar ...
  #1 (permalink)  
Antiguo 22/11/2012, 18:06
 
Fecha de Ingreso: noviembre-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Pregunta Problemas al guardar los datos de un formulario con PHP y mySQL

Hola, soy programador desde hace años pero novato aún en PHP, JS, ...
Estoy creando un sitio y, he tomado código de otro sitio similar que voy adaptando.
Yendo al grano, el problema lo tengo al intentar guardar un registro en mySQL, ya sea INSERT o UPDATE. He hecho todo tipo de pruebas pero no consigo avanzar porque no hay ningún mensaje de error.

En vivo, después de introducir los datos de una nueva noticia, hago clic en Modificar noticia y me vuelve a la pantalla principal pero sin haber hecho el cambio en la base de datos. Lo mismo ocurre al crear una noticia. El borrado funciona correctamente. Esta última opción no utiliza los formularios con los campos y por ahí puede andar el asunto pero no he sido capaz de averiguarlo. He puesto algún ALERT (no estoy seguro de haberlo hecho bien) en los procesos de guardado y no los muestra. Os agradecería un montón que me echaseis una mano. Si necesitáis cualquier información adicional estaré siguiendo el foro. Graciassssss.

Les adjunto los ficheros relacionados:

FICHERO fnoticia_mod.php:

<?php // obtenemos la noticia en cuestion para modificarlo
$rec = getNoticia ($conexion, $_GET['id']);
if (is_array($rec) && sizeof($rec) > 0) {

$id = $rec['id'];
$fecha = $rec['fecha'];
$titulo = $rec['titulo'];
$noticia = $rec['noticia'];
$foto = $rec['foto'];

?>
<form id="fmodnoticia" name="fmodnoticia" action="noticias_mod.php" method="post">

<input type="hidden" id="id" name="id" value="<?php echo $id;?>" />

<p><label for="fecha">Indique la fecha de la noticia (dd/mm/aaaa): <br />
<input type="text" id="fecha" name="fecha" maxlength="10" value="<?php echo date("d/m/Y", strtotime($fecha));?>"
required = "required" />
</label></p>

<p><label for="titulo">Introduzca el título de la noticia:<br />
<input type="text" id="titulo" name="titulo" value="<?php echo $titulo;?>"
maxlength="50" class="cajatexto" required = "required" />
</label></p>

<p><label for="noticia">Introduzca los detalles de la noticia:<br />
<textarea name=”noticia” id="noticia" title="Máximo 400 caracteres" cols=”100” rows=”4” onkeyup="if (this.value.length == 400) this.disabled = true;" class="cajamultitexto" required = "required">
<?php echo $noticia;?>
</textarea><br />
</label></p>

<p><label for="foto">Si lo desea, puede agregar una imagen a la noticia. Introduzca la ruta de la imagen: <br />
<input type="file" id="foto" name="foto" value="<?php echo $foto;?>"
maxlength="250" class="cajatexto" />
</label></p>

<p>
<input name="enviar" type="submit" value="Modificar Noticia" class="boton" />
</p>

</fieldset>

</form>

<?php } else {
'<p>No se ha encontrado la noticia indicada.</p>';
}

FICHERO noticias_mod.php:

<?php // Modificamos la noticia
// Inclusion de los archivos necesarios
include_once 'includes.php';

updateNoticia($conexion, $_POST);

$_SESSION['ultimoMensaje'] = "La noticia se modific&oacute; correctamente.<br />";
header("location: noticias_index.php?error=0");
exit();

FICHERO noticias_mod_form.php:

<?php // obtenemos la noticia en cuestion para modificarlo
$rec = getNoticia ($conexion, $_GET['id']);
if (is_array($rec) && sizeof($rec) > 0) {

$id = $rec['id'];
$fecha = $rec['fecha'];
$titulo = $rec['titulo'];
$noticia = $rec['noticia'];
$foto = $rec['foto'];

?>
<form id="fmodnoticia" name="fmodnoticia" action="noticias_mod.php" method="post">

<input type="hidden" id="id" name="id" value="<?php echo $id;?>" />

<p><label for="fecha">Indique la fecha de la noticia (dd/mm/aaaa): <br />
<input type="text" id="fecha" name="fecha" maxlength="10" value="<?php echo date("d/m/Y", strtotime($fecha));?>"
required = "required" />
</label></p>

<p><label for="titulo">Introduzca el título de la noticia:<br />
<input type="text" id="titulo" name="titulo" value="<?php echo $titulo;?>"
maxlength="50" class="cajatexto" required = "required" />
</label></p>

<p><label for="noticia">Introduzca los detalles de la noticia:<br />
<textarea name=”noticia” id="noticia" title="Máximo 400 caracteres" cols=”100” rows=”4” onkeyup="if (this.value.length == 400) this.disabled = true;" class="cajamultitexto" required = "required">
<?php echo $noticia;?>
</textarea><br />
</label></p>

<p><label for="foto">Si lo desea, puede agregar una imagen a la noticia. Introduzca la ruta de la imagen: <br />
<input type="file" id="foto" name="foto" value="<?php echo $foto;?>"
maxlength="250" class="cajatexto" />
</label></p>

<p>
<input name="enviar" type="submit" value="Modificar Noticia" class="boton" />
</p>

</fieldset>

</form>

<?php } else {
'<p>No se ha encontrado la noticia indicada.</p>';
}

FICHERO noticias.php:

<?php // Funciones relacionadas con las Noticias

function addNoticia ($conexion, $post) {



$consulta = "INSERT INTO `Noticias` (
`fecha` ,
`titulo` ,
`noticia` ,
`foto`
) VALUES (
?, ?, ?, ?
);";

try {
$sentencia = $conexion->prepare($consulta);
$sentencia->execute(array($post['fecha'],
$post['titulo'],
unescape($post['noticia']),
unescape($post['foto'])
));
return true;
} catch (PDOException $e) {
// return false;
echo '<script language=’JavaScript’>
alert(‘'.$e->getMessage().'’)</script>';
}

}

function updateNoticia ($conexion, $post) {

$consulta = "UPDATE `Noticias` SET
`fecha` = ?,
`titulo` = ?,
`noticia` = ?,
`foto` = ?
WHERE `Noticias`.`id` = ?
LIMIT 1 ;";


//echo $consulta;

try {
$sentencia = $conexion->prepare($consulta);
$sentencia->execute(array(
$post['fecha'],
unescape($post['titulo']),
unescape($post['noticia']),
unescape($post['foto']),
$post['id']));
return true;
} catch (PDOException $e) {
// return false;
echo '<script language=’JavaScript’>
alert(‘'.$e->getMessage().'’)</script>';

}

}

function deleteNoticia ($conexion, $id) {

$consulta = "DELETE FROM `Noticias` WHERE `Noticias`.`id` = ?
LIMIT 1 ;";

try {
$sentencia = $conexion->prepare($consulta);
$sentencia->execute(array($id));
return true;
} catch (PDOException $e) {
return false;
}

}

function getNoticia ($conexion, $id) {

$consulta = "SELECT * FROM `Noticias` WHERE `Noticias`.`id` = ?
LIMIT 1 ;";

try {
$sentencia = $conexion->prepare($consulta);
$sentencia->execute(array($id));
$result = $sentencia->fetchAll();
if (is_array($result) && sizeof($result) > 0) {
return $result[0];
} else {
return false;
}
} catch (PDOException $e) {
return false;
}

}

function getAllNoticias ($conexion) {

$consulta = "SELECT * FROM `Noticias` ORDER BY id DESC;";

try {
$sentencia = $conexion->prepare($consulta);
$sentencia->execute(array());
$result = $sentencia->fetchAll();
if (is_array($result) && sizeof($result) > 0) {
return $result;
} else {
return false;
}
} catch (PDOException $e) {
return false;
}

}
  #2 (permalink)  
Antiguo 05/12/2012, 13:38
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas al guardar los datos de un formulario con PHP y mySQL

Añade la function mysql_error() para comprobar el error que se esta generando

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

Etiquetas: mysql, formulario
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 21:55.