Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/10/2011, 09:06
fran1
 
Fecha de Ingreso: octubre-2011
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Como se pueden insertar registros en una base de datos usando una variable

// CODIGO DE LA CONEXION 'foro.php' //

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_foro = "localhost";
$database_foro = "foro_modelismonaval";
$username_foro = "root";
$password_foro = "";
$foro = mysql_pconnect($hostname_foro, $username_foro, $password_foro) or trigger_error(mysql_error(),E_USER_ERROR);
?>
// LA BASE DE DATOS TIENE LAS SIGUIENTES TABLAS //
TABLA 'mensajes' con los registros 'id_mensaje' (entero autoincrementable), 'titulo' (del mensaje), 'autor', 'fecha', 'mensaje'

TABLA 'respuesta' con los registros 'id_respuesta'(entero autoincrementable), 'id_mensaje' (corresponde al codigo del mensaje del que proviene y su valor se envia por URL en la variable cat), 'autor' (se pide por formulario), 'fecha' (fecha actual que se envia con la variable $fecha_actual), 'respuesta' (se pide por formulario)

EL FORMULARIO QUE SE MUESTRA ES EL SIGUIENTE Y SU FUNCION ES CREAR EL MENSAJE DE RESPUESTA A UN MENSAJE INICIAL:
<form action="<?php echo $editFormAction; ?>" id="Responder" name="Responder" method="POST">
<table width="392" height="205" border="1" align="center" cellpadding="4" cellspacing="2">
<tr>
<td height="36">AUTOR:</td>
<td><input name="Autor" type="text" id="Autor" maxlength="30" /></td>
</tr>
<tr>
<td>RESPUESTA:</td>
<td><textarea name="Respuesta" id="Respuesta"></textarea></td>
</tr>
<tr>
<td height="34">&nbsp;</td>
<td align="center" valign="middle"><input type="submit" name="Crear" id="Crear" value="Enviar" /></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="Responder" />
</form>
// el formulario tiene los campos 'autor' y 'respuesta' y el botón 'enviar' que inserta los datos del formulario en la base de datos. Además de los datos 'autor' y 'respuesta' del formulario se deben insertar los datos 'fecha' (que debe ser la fecha de creación del mensaje) y 'id_mensaje'(para relacionar la respuesta con el mensaje inicial y cuyo valor se recibe por URL de la pagina mensajes.php) //

// El siguiente codigo inserta los datos generados a través del formulario ('autor', 'respuesta') en la base de datos //

$foro=mysql_conect('foro', 'id_mensaje', 'fecha');
mysql_select_db($database_foro, $foro);
$insertar = "INSERT INTO respuestas(id_mensaje, fecha) VALUES('$Mensaje_inicial', '$fecha_actual')";
$insertar = mysql_query($insertar, $foro) or die(mysql_error());

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Responder")) {
$insertSQL = sprintf("INSERT INTO respuestas (autor, respuesta) VALUES (%s, %s)",
GetSQLValueString($_POST['Autor'], "text"),
GetSQLValueString($_POST['Respuesta'], "text"),
mysql_select_db($database_foro, $foro));
$Result1 = mysql_query($insertSQL, $foro) or die(mysql_error());


$insertGoTo = "RespuestasSesion.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>

// y el siguiente codigo asigna los datos 'fecha' e 'id_mensaje' a las variables $Mensaje_inicial y $fecha_actual //

if (isset($_GET['cat'])) {
$Mensaje_inicial = $_GET['cat'];
}
$fecha_actual = date("Y-m-d");

//El valor de estas variables se ha de insertar en la base de datos en los campos 'fecha' e 'id_mensaje y es el código de la instrucción SQL que lo puede hacer lo que me falta //

// He probado con el codigo siguiente: //

mysql_select_db($database_foro, $foro);
$insertar = "INSERT INTO respuestas(id_mensaje, fecha) VALUES('$Mensaje_inicial', '$fecha_actual')";
$insertar = mysql_query($insertar, $foro) or die(mysql_error());

// pero me da el error siguiente //

Notice: Undefined variable: Mensaje_inicial in C:\wamp\www\pruebas\foro\Crear_respuesta.php on line 108

¿Puedes indicarme cual es la instrucción correcta para insertar esos datos?