Regresar a la página www.ComoCrearTuWeb.com
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 16

Tema: no me agrega los datos a la base de datos en mysql

  1. #1
    Recien Llegado! Merodeador
    Fecha de Ingreso
    20 dic, 11
    Mensajes
    6
    Poder de Reputación
    0

    no me agrega los datos a la base de datos en mysql

    Hola estoy haciendo el curso de PHP y MySql en CCTW.

    Ahora bien todo perfecto hasta q llegue a la lección de "todo sobre formularios" en la parte donde dice "Guardar la Información".
    Donde no me almacena en mi base de datos, la informacion q agrego en el index.php.

    a continuación agrego el codico q hay en mi index.php q estoy editandolo en el HTML-Kit, para q por favor me digan si estoy haciendo algo mal. Ademas tambien agregue los codigos contenidos en el los archivos de "config.php" y "insertardatosentabla.php".

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <html>
    <head>
    <title>mi quinta pagina con php</title>
    </head>
    <body>

    <!-- formulario -->

    <form method = "post" action="insertardatosentabla.php">
    <input type = "text" name = "NOMBRE" value = "Escribe tu nombre" size = 30 maxlength=50 ><br/>
    <input type = "text" name = "EMAIL" value = "tuemail@correcto" size = 30 maxlength = 50 ><br/>
    <input type="text" name="URL" value="http://www.tudirecciondepagina.web" size=30 maxlength=50 ><br/>
    <input type="hidden" name="ESTADO" value="Activo" />
    <input type="SUBMIT" value="Boton de envio estandar" name="Enviar la información al servidor"><br/>
    </form>

    </body>
    </html>


    Hice mi archivo en en block de notas llamado "config.php", como lo describen y copie y pegue esto en el:

    <?php
    // Rellena los espacios ente comillas de abajo con los datos que te da
    // el servidor al activar la base de datos.
    // Este dato de abajo suele ser localhost casi siempre:
    $server="localhost";

    // Aqui abajo escribe el nombre de la base de datos.
    // Si tu servidor tiene cpanel normalmente va primero tu nombre de username,
    // por ejemplo: username_nombredelabasededatos
    $database = "cartago_basedepruebas";

    // Aqui abajo el nombre de username de la base de datos para acceder a ella.
    $db_user = "cartago_pepito";

    // Y ahora la contraseña:
    $db_pass = "servicio23";
    ?>

    entendiendo lo del usuario y todo lo coloque como me corresponde en mi caso.

    Luego abri otro block de notas y lo llame "insertardatosentabla.php" y coloque esto (este si es exactamente como lo tengo en la raiz de mi web):

    <?php include("config.php") ; ?>

    <?php
    // leer datos de usuario y contraseña de la base de datos
    include("config.php") ;

    // Conexión con el servidor
    mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());

    // Selección de Base de Datos
    mysql_select_db($database) or die ("error2".mysql_error());
    ?>

    <?php
    mysql_query ("INSERT INTO `alexismo_basedepruebas`.`USUARIOS` (`NOMBRE`, `EMAIL`, `URL`, `ESTADO`) VALUES ('$_POST[NOMBRE]', '$_POST[EMAIL]', '$_POST[URL]', '$_POST[ESTADO]') ");
    ?>



    Cualquier ayuda se los agradeceria!!!!!!!!!!!!!!!!

  2. #2
    Me va gustando esto... Habitante
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    14
    Probá con:

    Código:
    <?php
    
    include("config.php") ;
    
    // Conectar con el servidor de datos MYSQL.
    $conexion=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
    
    // Seleccionás la base de datos con la cual vas a trabajar.
    mysql_select_db($database, $conexion) or die ("error2".mysql_error());
    
    mysql_query ("INSERT INTO USUARIOS(NOMBRE,EMAIL,URL,ESTADO) VALUES ('".$_POST[NOMBRE]."', '".$_POST[EMAIL]."', '".$_POST[URL]."', '".$_POST[ESTADO]."')") or die ("Problemas al insertar".mysql_error());
    ?>
    Saludos :)

    Una cosa en especial, no hace falta abrir y cerrar el código php tantas veces, en uno solo puede entrar todo :P

  3. #3
    Recien Llegado! Merodeador
    Fecha de Ingreso
    20 dic, 11
    Mensajes
    6
    Poder de Reputación
    0
    cuando me pide:
    $conexion=mysql_connect($server, $db_user, $db_pass)
    debo colocar como?
    asi:
    $conexion=mysql_connect($server="localhost", $db_user="alexismo_basedepruebas", $db_pass="pass")
    asi:
    $conexion=mysql_connect($localhost, $alexismo_basedepruebas, $pass)

    o como?



    Cita Iniciado por _St Ver Mensaje
    Probá con:

    Código:
    <?php
    
    include("config.php") ;
    
    // Conectar con el servidor de datos MYSQL.
    $conexion=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
    
    // Seleccionás la base de datos con la cual vas a trabajar.
    mysql_select_db($database, $conexion) or die ("error2".mysql_error());
    
    mysql_query ("INSERT INTO USUARIOS(NOMBRE,EMAIL,URL,ESTADO) VALUES ('".$_POST[NOMBRE]."', '".$_POST[EMAIL]."', '".$_POST[URL]."', '".$_POST[ESTADO]."')") or die ("Problemas al insertar".mysql_error());
    ?>
    Saludos :)

    Una cosa en especial, no hace falta abrir y cerrar el código php tantas veces, en uno solo puede entrar todo :P

  4. #4
    Me va gustando esto... Habitante
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    14
    No entiendo, si los datos están en el archivo config.php no te hace falta nada.

    Saludos!

  5. #5
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    25
    Hola:

    @debonaire, lo que dice _St es que los datos están en el archivo config.php y este es incluído en el archivo insertardatosentabla.php a través de include( 'config.php' );. La palabra clave include hace que este disponible todo lo que contiene el archivo que se especifique entre paréntesis (include( 'config.php' );), por ende, las variables $server, $database, $db_user y $db_pass se pueden utilizar como tal, o sea, con el nombre de la variable. Lo siguiente

    Código PHP:
    include( 'config.php' );
    $conexion mysql_connect$server$db_user$db_pass ); 
    es lo mismo que esto

    Código PHP:
    $conexion mysql_connect'localhost''cartago_pepito''servicio23' ); 
    y, si te fijas bien, en este último trozo de código no se incluye la función include(), puesto que has escrito, literalmente, los parámetros necesarios; todo lo que esta entre paréntesis y separado por comas es un parámetro (mysql_connect( 'parámetro1', 'parámetro2', 'parámetro3' );, include( 'parámetro' );, etcétera).

    Espero haber aclarado la duda :P.

    Saludos.

  6. #6
    Recien Llegado! Habitante
    Fecha de Ingreso
    25 ene, 12
    Mensajes
    19
    Poder de Reputación
    13
    opino lo mismo que skaparate y sino mira las rutas correctamente

  7. #7
    Recien Llegado! Habitante
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    27
    Poder de Reputación
    14
    Yo tengo el mismo problema, he seguido el curso y brujuleado por ahí, ahora logro que conecte con la base de datos pero no me agrega los datos. He realizado bastantes pruebas y se ve que es un problema que tenemos más de uno, incluso modifique segun se define más arriba por _ST, pero nada ¿me puede ayudar alguien?
    este es el código escrito
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>PRUEBA PARA ENVIAR DATOS A UN FORMULARIO</title>
    </head>
    <body>
    <?php
    // leer datos de usuarios y contraseña de la base de datos
    include("config.php");
    // conexión con el servidor
    mysql_connect('localhost', 'root', '') or die ("error1".mysql_error());
    //Selección de Bae de Datos
    mysql_select_db('basedepruebas') or die ("error2".mysql_error());
    ?>

    <?php
    if (isset($_POST['NOMBRE,EMAIL,URL,ESTADO'])) {
    // esquema básico
    //mysql_query ("INSERT INTO base.tabla (nombre de los campos) VALUES (datos correspondientes)");
    mysql_query("INSERT INTO usuarios (NOMBRE,EMAIL,URL,ESTADO) VALUES ('".$_POST[NOMBRE]."', '".$_POST[EMAIL]."', '".$_POST[URL]."', '".$_POST[ESTADO]."')") or die ("Problemas al insertar".mysql_error());
    echo 'Datos agregados correctamente';
    }
    else
    {
    ?>
    <form method="post" action="insertardatosentabla02.php" name="frmDatos" id="frmDatos">
    <input type="text" name="NOMBRE" value="escribe tu nombre" size="30" maxlength="50"> <br/>
    <input type="text" name="EMAIL" value="escribe tu e-mail" size="30" maxlength="50"> <br/>
    <input type="text" name="URL" value="escribe tu pagina WEB" size="30" maxlength="50"> <br/>
    <input type="hidden" name="ESTADO" value="Activo" /><br/>
    <input type="submit" value= "botón de envio estandar" name="enviar la informqción al servidor"><br/>
    </form>
    <?php
    }
    mysql_close($conexion);
    ?>
    </body>
    </html
    Saludos
    Adaraja

  8. #8
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    25
    @Adaraja:

    ¿Te muestra algún error? Lo único malo que veo es que debes poner el nombre de los indices del arreglo $_POST entre comillas (simples o dobles): $_POST['NOMBRE'], $_POST['EMAIL'], etcétera. Además, la variable $conexion no existe. Reemplaza la línea

    Código PHP:
    mysql_connect('localhost''root''') or die ("error1".mysql_error()); 
    por
    Código PHP:
    $conexion mysql_connect('localhost''root''') or die ("error1".mysql_error()); 
    Saludos.

  9. #9
    Recien Llegado! Habitante
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    27
    Poder de Reputación
    14
    Gracias Skaparate, no me da ningún error
    entiendo que la variable $conexión ya está incluida en config.php

    <?php
    $conexion = mysql_connect('localhost', 'root', '');
    //mysql_select_db('basedepruebas');
    //$server="localhost";
    //$database="basedepruebas";
    //$db_user="root";
    //$db_pass="";
    mysql_select_db('basedepruebas');
    ?>
    En cuanto a las comillas ya lo he pronbado y nada
    También he probado definiendo las variables
    <?php
    // leer datos de usuarios y contraseña de la base de datos
    include("config.php");
    // conexión con el servidor
    mysql_connect('localhost', 'root', '') or die ("error1".mysql_error());
    //Selección de Bae de Datos
    mysql_select_db('basedepruebas') or die ("error2".mysql_error());

    $NOMBRE = $_POST ['NOMBRE'];
    $EMAIL = $_POST['EMAIL'];
    $URL = $_POST['URL'];
    $ESTADO = $_POST['ESTADO'];

    if (isset($_POST['ID,NOMBRE,EMAIL,URL,ESTADO'])) {
    // esquema básico
    //mysql_query ("INSERT INTO base.tabla (nombre de los campos) VALUES (datos correspondientes)");

    //mysql_query ("INSERT INTO usuarios(NOMBRE,EMAIL,URL,ESTADO) VALUES ('$NOMBRE','$EMAIL','$URL','$ESTADO")") or die("hubo un error al conectar con el servidor de BD");

    mysql_query ("INSERT INTO `usuarios`(`NOMBRE`, `EMAIL`, `URL`, `ESTADO`) VALUES ([$NOMBRE],[$EMAIL],[$URL],[$POST]);
    }
    else
    {
    ?>
    <form method="post" action="insertardatosentabla05.php" >
    <input type="text" name="NOMBRE" value="escribe tu nombre" size="30" maxlength="50"> <br/>
    <input type="text" name="EMAIL" value="escribe tu e-mail" size="30" maxlength="50"> <br/>
    <input type="text" name="URL" value="escribe tu pagina WEB" size="30" maxlength="50"> <br/>
    <input type="hidden" name="ESTADO" value="Activo" /><br/>
    <input type="submit" value= "botón de envio estandar" name="enviar la informqción al servidor"><br/>
    </form>
    <?php
    }
    mysql_close($conexion);
    ?>
    En este caso me da error en la línea de inicio del formulario
    Gracias de nuevo por tu atención
    Adaraja

  10. #10
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    25
    A ver... No sé cómo es la estructura de los archivos, pero debería ser así:

    formulario.html, config.php e insertardatos.php deben estar en la misma carpeta. El contenido de cada archivo debe ser así:

    Código HTML:
    <!-- formulario.html -->
    <!DOCTYPE html>
    <html>
    <head>
      <title>titulo</title>
    </head>
    <body>
      <form action="insertardatos.php" method="post">
        <input type="text" name="NOMBRE" value="escribe tu nombre" size="30" maxlength="50" /> <br/>
        <input type="text" name="EMAIL" value="escribe tu e-mail" size="30" maxlength="50" /> <br/>
        <input type="text" name="URL" value="escribe tu pagina WEB" size="30" maxlength="50" /> <br/>
        <input type="hidden" name="ESTADO" value="Activo" /><br/>
        <input type="submit" value= "Enviar" /><br/><!-- name, en el botón submit, no es necesario -->
      </form>
    </body>
    </html>
    Código PHP:
    <?php
      
    // config.php
      
    $db_dom 'localhost';
      
    $db_user 'root';
      
    $db_pass '';
      
    $db 'basedepruebas';
    ?>
    Algo que no me fijé anteriormente, y es donde esta el error, es que no se pueden comparar varios índices de un arreglo con una sola llamada a la función isset():

    Código PHP:
    <?php
      
    // insertardatos.php

      

      // if( isset( $_POST['ID,NOMBRE,EMAIL,URL,ESTADO'] ) ) <-- Esto esta mal, lo correcto sería:
      
      
    if( isset( $_POST['NOMBRE'] ) && 
          isset( 
    $_POST['EMAIL'] ) &&
          isset( 
    $_POST['URL'] ) &&
          isset( 
    $_POST['ESTADO'] ) ) {
        
    // Sólo se realiza la conexión con la base de datos si los datos se enviaron al archivo:
        
    require( 'config.php' );
        
    $con mysql_connect$domain$user$pass, ) or die ( "Error 1: " mysql_error() );
        
    mysql_select_db$db$con ) or die ( "Error 2: " mysql_error$con ) );

        
    // strip_tags quita las etiquetas html que puedan ser peligrosas, como <?php
        
    $name strip_tags$_POST['NOMBRE'] );
        
    $email strip_tags$_POST['EMAIL'] );
        
    $url strip_tags$_POST['URL'] );
        
    $state strip_tags$_POST['ESTADO'] );
        
    $query "INSERT INTO usuarios (NOMBRE, EMAIL, URL, ESTADO) VALUES ('$name', '$email', '$url', '$state')";
        
    $result mysql_query$query$con );
        
        if( 
    $result ) {
          echo 
    "<p>Datos guardados correctamente</p>";
        } else {
          echo 
    "<p>Ocurri&oacute; un error al guardar los datos: " mysql_error$con ) . "</p>";
        }
        
    mysql_free_result$result );
        
    mysql_close$con );
      } else {
        echo 
    "<p>Todos los campos son obligatorios.</p>";
      }
    ?>
    Eso sí debe funcionar. Si no funciona puede ser porque la base de datos y la tabla no corresponden, así que revíselos. También se me puede haber pasado un error XD.

    Saludos.

  11. #11
    Recien Llegado! Habitante
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    27
    Poder de Reputación
    14
    Gracias Skaparate por la pronta y practica respuesta, lo pruebo en esta forma
    Adaraja

  12. #12
    Recien Llegado! Habitante
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    27
    Poder de Reputación
    14
    Skaparate:
    Ya lo he probado, poniendo los datos db, user y passwoor correctos, funciona
    Me da error en la instrucción mysql_free_result, he hecho varios intentos pero no lo he conseguido, solo anulandolo
    // mysql_free_result( $result ); no da error., logico por otra parte
    Gracias de nuevo
    Saludos
    Adaraja

  13. #13
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    25
    Tienes razón, fue mi error. mysql_free_result() solo funciona cuando se han ejecutado consultas que extraen datos :P. Pero al menos ya lo resolviste.

    Saludos.

  14. #14
    Recien Llegado! Habitante
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    27
    Poder de Reputación
    14
    Skaparate:
    De nuevo con las dudas, como comente anteriormete segui el esquema y funciono sin problemas, pero he aqui que he creado una nueva base y nuevos campos, incluso manteniendo los mismos nombres para solo cambiar las referencia a nombre de la base y tabla, pero no logro que se graben los datos en la tabla ¿a que puede deberse?
    Saludos
    Adaraja

  15. #15
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    25
    ¿Podrías mostrar el código? Siempre "recorre" tu código línea por línea y ve que hace, así podrás descubrir los errores; eso se llama rutear o tracear (del inglés trace) el código.

Página 1 de 2 12 ÚltimoÚltimo

Temas Similares

  1. no me agrega los datos a la base de datos en mysql
    Por debonaire en el foro Curso Paso a Paso con Html-Kit.
    Respuestas: 6
    Último Mensaje: 21/12/2011, 11:06
  2. base de datos MySql
    Por LUCIO en el foro Foros
    Respuestas: 4
    Último Mensaje: 21/05/2010, 21:02
  3. base de datos Mysql
    Por clauquel en el foro Foros
    Respuestas: 1
    Último Mensaje: 23/04/2009, 23:28

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •