Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sistema de comentarios php no guarda datos en db

Estas en el tema de Sistema de comentarios php no guarda datos en db en el foro de PHP en Foros del Web. Hola a todos, he aqui una vez mas con un problemita con un sistema muy simple de comentarios en php y mysql, tengo 3 archivos ...
  #1 (permalink)  
Antiguo 28/10/2012, 11:25
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 13 años, 4 meses
Puntos: 1
Pregunta Sistema de comentarios php no guarda datos en db

Hola a todos, he aqui una vez mas con un problemita con un sistema muy simple de comentarios en php y mysql, tengo 3 archivos php, uno que es donde se escribe el comentario cuyo codigo es este:


Código HTML:
 <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="transparent">
<tr>
<form id="form1" name="form1" method="post" action="addjobb.php">
<td>
<table width="400" border="0" cellpadding="3" cellspacing="1" background color="transparent">
<tr>
<td width="76">Title</td>
<td width="6">:</td>
<td width="296"><input name="title" type="text" id="title" size="40" /></td>
</tr>

<tr>
<td valign="top">Comment</td>
<td valign="top">:</td>
<td><textarea name="comment" cols="38" rows="5" id="comment"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td> <input type="reset" name="Submit2" value="Reset" /> <input type="submit" name="Submit" value="Submit" /></td>
</tr>
</table>
</td>
</form>
</tr>
</table> 
el otro archivo intermediario (el que guardaria lo que se escribe, en la DB y se conecta con la db) cuyo codigo es este:

Código PHP:
<?php
$host
="xxxxxx.loopia.se"// Host name
$username="xxxxxx@n41629"// Mysql username
$password="@xxxxxxx"// Mysql password
$db_name="xxxxxxxxxx_com"// Database name
$tbl_name="joboffer"// Table name

// Connect to server and select database.
mysql_connect("xxxxxxx.loopia.se""xxxxxxxxx@n41629""@xxxxxxxx")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");

$datetime=date("y-m-d h:i:s"); //date time

$sql="INSERT INTO $tbl_name(title, comment, datetime)VALUES('$title', '$comment', '$datetime')";
$result=mysql_query($sql);

//check if query successful
if($result){
echo 
"Successful";
echo 
"<BR>";
echo 
"<a href='jobs.php'>Jobs</a>"// link to view guestbook page
}

else {
echo 
"ERROR";
}

mysql_close();
?>
y por ultimo tenemos donde se ven los comentarios:

Código PHP:
<?php

$host
="xxxxxxx.loopia.se"// Host name
$username="xxxxxxxx@n41629"// Mysql username
$password="@xxxxxxx"// Mysql password
$db_name="nordicitproject_com"// Database name
$tbl_name="joboffer"// Table name


// Connect to server and select database.
mysql_connect("xxxxxxx.loopia.se""xxxxxxx@n41629""@xxxxxx")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name ORDER BY id DESC";
$result=mysql_query($sql);

while(
$rows=mysql_fetch_array($result)){
?>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="2" bgcolor="#CCCCCC">
<tr>
<td><table width="400" border="0" cellpadding="3" cellspacing="1" background="imagenes/fondo_mensaje.jpg">

<tr>
<td width="72">Title</td>
<td width="11">:</td>
<td width="295"><? echo $rows['title']; ?></td>
</tr>

<tr>
<td valign="top">Description</td>
<td valign="top">:</td>
<td><? echo $rows['comment']; ?></td>
</tr>
<tr>
<td valign="top">Date/Time </td>
<td valign="top">:</td>
<td><? echo $rows['datetime']; ?></td>
</tr>
</table></td>
</tr>
</table>
<BR>
<?
}
mysql_close(); //close database
?>

La cosa es que cuando uno escribe en los campos y le da "submit" te manda a addjobb.php y dice succesfull (o sea es como si hubiese marchado todo bien) pero en la db lo unico que guarda es la feha y lo unico que muestra en la pagina siguiente es la fecha, la db la hice en phpmyadmin y la consulta es algo asi:

Código HTML:
CREATE TABLE IF NOT EXISTS `joboffer` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `title` varchar(65) NOT NULL DEFAULT '',
  `comment` longtext NOT NULL,
  `datetime` varchar(65) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=136 ;
por que me guarda y me muestra la fecha, pero no lo que escribo??? alguien me puede explicar que estoy haciendo mal?? he intentado hacer la DB otra vez y cambiar diferentes cosas en el codigo... pero no entiendo que esta pasando...Si me pudiera ayudar alguien con esto le estaria eternamente agradecido... Desde ya y a todos muchas gracias por tomarse el tiempo de leer esto!!! Si tienen cualquier sugerencia sera muuuy bienvenida!
  #2 (permalink)  
Antiguo 28/10/2012, 12:43
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Sistema de comentarios php no guarda datos en db

fijate en esto que haces en addjobb.php
Código PHP:
Ver original
  1. $sql="INSERT INTO $tbl_name(title, comment, datetime)VALUES('$title', '$comment', '$datetime')";

veo que en addjobb.php SI tenes una variable llamada $datetime, la cual la usas en tu consulta, hasta ahí impecable, pero y $title y $comment? nunca las definiste, por eso no te guarda nada, es lógico, si te fijas en addjobb nunca definiste una variable $title y $comment.
  #3 (permalink)  
Antiguo 28/10/2012, 13:29
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Sistema de comentarios php no guarda datos en db

Cita:
Iniciado por rodrigo791 Ver Mensaje
fijate en esto que haces en addjobb.php
Código PHP:
Ver original
  1. $sql="INSERT INTO $tbl_name(title, comment, datetime)VALUES('$title', '$comment', '$datetime')";

veo que en addjobb.php SI tenes una variable llamada $datetime, la cual la usas en tu consulta, hasta ahí impecable, pero y $title y $comment? nunca las definiste, por eso no te guarda nada, es lógico, si te fijas en addjobb nunca definiste una variable $title y $comment.
ahaa!!! ok, me voy a fijar en eso ya mismo! Gracias!!
  #4 (permalink)  
Antiguo 28/10/2012, 13:50
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Sistema de comentarios php no guarda datos en db

Bueno la respuesta era simple, gracias rodrigo791 lo unico que tube que hacer fue declarar esas 2 variables en "addjobb" que no se como se me habian pasado:
Código PHP:
Ver original
  1. $title=$_POST['title'];
  2. $comment=$_POST['comment'];

y de ahi modificar otra tonteria en la segunda linea del primer archivo:
Código HTML:
Ver original
  1. <form method="POST" action="addjobb.php">

en lugar de:

Código HTML:
Ver original
  1. <form id="form1" name="form1" method="post" action="addjobb.php">

Nuevamente miles de gracias rodrigo791!!!

Etiquetas: comment, mysql, problem, table
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 17:13.