Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2008, 08:44
Avatar de -Defero-
-Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Pregunta Formulario PHP para introducir datos en BD MySQL

Antes de nada, pido disculpas si mi consulta está planteada en el foro equivocado. No sé si corresponde a PHP o a MySQL, yo he optado por PHP. Si algún moderador cree que está en el subforo equivocado, que lo mueva.

Y ahora, la pregunta. Estoy preparando un sistema (muy simple, ya habrá tiempo de complicarlo) para gestionar notas, de manera que entre varios usuarios puedan anotarse mensajes dirigidos a uno u otro, accediendo vía web. Habrá una tabla en la que se mostrará las últimas notas, indicando en cada una de quién es y para quién (cualquiera podrá ver las notas para los demás). No tengo ningún problema a la hora de escribir el documento que extraerá las notas de la base de datos y las mostrará, pero el formulario para introducir nuevas notas se me está resistiendo. Os cuento qué tengo hasta ahora.

Primero he puesto un formulario para introducir los datos:

Código PHP:
    echo "<form method=\"post\" action=\"notas.php\">
    <br>Fecha: <textarea name=\"form_fecha\" cols=\"10\" rows=\"1\"></textarea>
    Para: <textarea name=\"form_para\" cols=\"10\" rows=\"1\"></textarea>
    De: <textarea name=\"form_de\" cols=\"10\" rows=\"1\"></textarea>
    <br>Resumen: <textarea name=\"form_resumen\" cols=\"60\" rows=\"2\"></textarea>
    <br>Mensaje: <textarea name=\"form_mensaje\" cols=\"60\" rows=\"2\"></textarea>
    <br><input type=\"submit\" name=\"submit\" value=\"Añadir\"></form>"

Los campos son "form_fecha", "form_para", "form_de", "form_resumen" y "form_mensaje". En la base de datos de momento todos los campos son "text", a modo de prueba (luego ajustaré eso). El formulario envía los datos mediante método "POST", y redirige al propio documento del formulario.

Después viene esto:

Código PHP:
    $form_fecha $_POST["form_fecha"];
    
$form_para $_POST["form_para"];
    
$form_de $_POST["form_de"];
    
$form_resumen $_POST["form_resumen"];
    
$form_mensaje $_POST["form_mensaje"]; 
Al recargar el documento desde el formulario, recoge la información enviada mediante "POST".

Después un "include" con los datos de conexión a la base de datos (son correctos, y el usuario tiene permisos para añadir datos; lo he comprobado), y establecimiento de conexión:

Código PHP:
    include("db.php");
    
$conexion mysql_connect($dbhost,$dbuser,$dbpasswd);
    
mysql_select_db($dbname,$conexion); 
Ahora, primero compruebo que se hayan recibido datos vía "POST" mediante "if isset", y si es así, introduzco datos en la BD. Además, meto un "ECHO" para que me muestre en el propio documento qué es lo que se ha enviado vía POST:

Código PHP:
    if (isset($form_para))
        {
        
$sql "INSERT INTO notas (id, fecha, para, de, resumen, mensaje) VALUES ('', '$form_fecha', '$form_para', '$form_de', '$form_resumen, '$form_mensaje')";
        
$result mysql_query($sql);
           echo 
"<h2><a name=\"nuevo\"></a>Nueva nota añadida</h2>
        <ul>
        <li><b>Fecha:</b> $form_fecha</li>
        <li><b>De:</b> $form_de</li>
        <li><b>Para:</b> $form_para</li>
        <li><b>Resumen:</b> $form_resumen</li>
        <li><b>Mensaje:</b> $form_mensaje</li>
        </ul>"
;
        } 
No había citado el campo "id", que no incluyo en el formulario por no ser necesario, ya que es un campo "auto-incremental". La tabla se llama "notas", y los campos de la tabla están correctamente escritos.

El resultado es que me muestra los datos enviados vía "POST" en el último "ECHO", es decir, al pulsar el botón "enviar" del formulario los datos se envían correctamente. Pero estos no se graban en la base de datos. ¿Alguien sabría decirme por qué?

Muchas gracias.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable