Foros del Web » Programando para Internet » PHP »

Problema al insertar datos en una tabla

Estas en el tema de Problema al insertar datos en una tabla en el foro de PHP en Foros del Web. Bueno he utilizado un script para un sistema de noticias que encontre en esta pagina, pero luego de reparar todos sus errores (del script), me ...
  #1 (permalink)  
Antiguo 27/04/2007, 13:01
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Exclamación Problema al insertar datos en una tabla

Bueno he utilizado un script para un sistema de noticias que encontre en esta pagina, pero luego de reparar todos sus errores (del script), me encuentro con que en mi base de datos no se insertan los datos enviados por el formulario.

Aqui os dejo el codigo del formulario y el script que inserta los datos en la base de datos:

Formulario de envio:

Código PHP:
<form action="enviar_noticia.php" method="POST">
Título noticia:<br>
<
input type="text" name="titulo"><br>
Autor:<br>
<
input type="text" name="autor"><br>
Escriba el articulo<br>
<
textarea name="articulo" cols="50" rows="10"></textarea><br>
<
input type="submit" value="Publicar"><br>
</
form
Insercion de datos en la db (enviar_noticia.php):

Código PHP:
<?php
error_reporting
(E_ALL);
//Get the variables sended by the form:
$titulo=$_POST["titulo"];
$autor=$_POST["autor"];
$articulo=$_POST["articulo"];

//Connect to db:
$connect=mysql_connect('localhost','root','123456');

//Select db:
mysql_select_db("wi140043_noticias",$connect);

//Insert the stored registers:
mysql_query("INSERT into noticias (titulo,autor,articulo,fecha) VALUES ('$titulo','$autor','$articulo',NOW()) ");
header("location: noticias.php");
?>
De paso dicho, en este mismo archivo, enviar_noticia.php, me da los siguientes errores:

Notice: Undefined index: titulo in C:\AppServ\www\web\enviar_noticia.php on line 4

Notice: Undefined index: autor in C:\AppServ\www\web\enviar_noticia.php on line 5

Notice: Undefined index: articulo in C:\AppServ\www\web\enviar_noticia.php on line 6

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\web\enviar_noticia.php:4) in C:\AppServ\www\web\enviar_noticia.php on line 16

Agradecere cualquier ayuda, espero su respuesta, saludos.
  #2 (permalink)  
Antiguo 27/04/2007, 13:58
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 21 años
Puntos: 3
Re: Problema al insertar datos en una tabla

lo ideal seria que hagas tu conexion a la BD en un archivo aparte y lo llames con un include... y el tus parametro de conexion no lo estas llamando a que se conecte, hazlo como funcion... te dejo un ejemplo:

Código PHP:
function Conectarse(){
    
$con mysql_connect("localhost","tulogin","tupass");
    
mysql_select_db("tubasededatos",$con);
    return 
$con;
}
Conectarse(); 
inclusion en la BD:


Código PHP:
mysql_query("INSERT into noticias VALUES ('$titulo','$autor','$articulo',NOW()) "); 
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #3 (permalink)  
Antiguo 27/04/2007, 19:38
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Problema al insertar datos en una tabla

Bueno logre hacer andar eso, ahora me faltaria esas 3 lineas de errores, que si bien no impiden el buen funcionamiento del sistema de noticias, no deberian estar.

Por otro lado, tengo este problema, cuando muestro los resultados lo hago de la siguiente manera, para que tenga una linda estetica, el tema es que solo se ve bien cuando es 1 noticia, si son mas las tablas se desacomodan:

Código PHP:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>


<?php
//Connect to db:
$connect=mysql_connect("localhost","root","123456");

//Select db:
mysql_select_db("wi140043_noticias",$connect);

//Consult:
$result=mysql_query("SELECT * FROM noticias ORDER BY fecha DESC",$connect);
?>

<body>

<table border=0 cellpadding=0 cellspacing=0>
<td>

<table width=152 height=30 border=0 cellpadding=0 cellspacing=0>
<td background="img/post_menu1.jpg">
<p align="center"><b>Autor</b></p>
</table>

<?php
//Get the results of the consult in an array and show them:
while($row=mysql_fetch_array($result))
{
echo 
'
<table width=152 height=30 border=0 cellpadding=0 cellspacing=0>
<td background="img/post_fondo1_1.jpg">
<p><b>'
.$row["autor"].'</b></p>
</table>

<table width=152 height=160 border=0 cellpadding=0 cellspacing=0>
<td background="img/post_fondo1_2.jpg">
</table>

<table width=152 height=30 border=0 cellpadding=0 cellspacing=0>
<td background="img/post_fondo1_3.jpg">
</table>

<td>

<table width=565 height=30 border=0 cellpadding=0 cellspacing=0>
<td background="img/post_menu2.jpg">
<p align="center"><b>Mensaje</b></p>
</table>

<table width=565 height=30 border=0 cellpadding=0 cellspacing=0>
<td background="img/post_fondo2_1.jpg">
<p><b>Publicado: </b>'
.$row["fecha"].'<br>
<b>Titulo del mensaje: </b>'
.$row["titulo"].'</p>
</table>

<table width=565 height=160 border=0 cellpadding=0 cellspacing=0>
<td background="img/post_fondo2_2.jpg">
<p>'
.$row["noticia"].'</p>
</table>

<table width=565 height=30 border=0 cellpadding=0 cellspacing=0>
<td background="img/post_fondo2_3.jpg">
<p align="right"><a href="admin_noticias.php"><b>[ Nuevo ]</b></a>
<a href="editar_noticia.php?id='
.$row["id_noticia"].'"><b>[ Editar ]</b></a>
<a href="borrar_noticia.php?id='
.$row["id_noticia"].'"><b>[ Borrar ]</b></a></p>
</table>'
;
}
mysql_free_result($result);
mysql_close($connect);
?>

</body>
</html>
Como hago para que lo que esta dentro del bucle (while), se vea correctamente con 1 o n noticias.

Por ultimo pregunto, siempre que me conecte a la db, al finalizar las consultas deberia cerrar la conexion?

Gracias.
  #4 (permalink)  
Antiguo 27/04/2007, 21:45
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 22 años, 3 meses
Puntos: 6
Re: Problema al insertar datos en una tabla

Hola
en principio, puedes hacer uso de la arroba @
$titulo=@$_POST["titulo"];
ya que no haces ningun cheque de datos vacios como por ejemplo
if($_POST["titulo"]=''){
echo 'error';
}
o
if(!isset($_POST["titulo"]='')){
echo 'error';
}
por lo menos al incluir la @ no te mostrara los errores qunque es mejor que hagas el chequeo


referente a las tablas...\

creo que te valdria esto
Código PHP:
$RESULTADO '<table width=152 height=30 border=0 cellpadding=0 cellspacing=0> ';

while(
$row=mysql_fetch_array($result)) 

$RESULTADO .= '<tr><td>'.$row["fecha"].'</td>
<td background="img/post_fondo1_1.jpg"> 
<p><b>'
.$row["autor"].</b></p> </td></tr>
}
$RESULTADO .= </table>
echo 
$RESULTADO
este es un simple ejemplo, ya que veo que en tu codigo repites muchas veces las tablas
espero que te sirva
__________________
Un Saludo
www.tutores.org
Asp | Php | Javascript | Perl | Coldfusion | Flash | +- 2000 codigos
  #5 (permalink)  
Antiguo 28/04/2007, 07:18
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Problema al insertar datos en una tabla

Ante todo gracias por la ayuda que me brindaron, y gracias a Alejandro (autor del codigo del sistema de noticias), que si bien estuve 1 dia laburando para debuguear, me sirvio mucho la estructura de su codigo, y de paso debugueando se aprende.

Bueno en fin, despues de horas de trabajo todo funciona como debe y tiene un lindo toque de diseño.
  #6 (permalink)  
Antiguo 28/04/2007, 09:03
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Problema al insertar datos en una tabla

Nuevo problema :P

Ahora cuando uso la funcion header("location: admin_noticias.php"); me sale el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\web\check_usuario.php:7) in C:\AppServ\www\web\check_usuario.php on line 11

Si alguien me puede decir por que hace eso y como arreglarlo, les agradecere.
  #7 (permalink)  
Antiguo 28/04/2007, 13:14
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Problema al insertar datos en una tabla

Hola Ioryo, asegurate de no tener lineas en blanco en tu script check_usuario.php ni html, antes de mandar el header. Saludos
__________________
->Aprender es un proceso que incluye el error..
  #8 (permalink)  
Antiguo 28/04/2007, 13:25
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Problema al insertar datos en una tabla

Lineas en blanco te referis a un espacio? o a una linea de "enter" por asi decirlo?
  #9 (permalink)  
Antiguo 28/04/2007, 16:14
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Problema al insertar datos en una tabla

asegurate de que no haya una salida en pantalla como un echo, print o printf eso obliga a que las cabeceras ya no sea posible modificarlas, si no puedes quitar la salida ya que es necesaria, puedes probar con el ob_start() poniendolo al principio de la página y ob_end_flush() al final, esto hara que no se envia nada al navegador hasta que termine de procesarse la hoja y con esto si se pueden modificar las cabeceras.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
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 18:44.