+ Responder Tema
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 debonaire Está en el buen camino
    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 _St Está en el buen camino
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    1
    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 debonaire Está en el buen camino
    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 _St Está en el buen camino
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    1
    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 skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    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 skiper25 Está en el buen camino
    Fecha de Ingreso
    25 ene, 12
    Mensajes
    19
    Poder de Reputación
    1
    opino lo mismo que skaparate y sino mira las rutas correctamente

  7. #7
    Recien Llegado! Habitante Adaraja Está en el buen camino
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    19
    Poder de Reputación
    2
    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 skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    @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 Adaraja Está en el buen camino
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    19
    Poder de Reputación
    2
    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 skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    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 Adaraja Está en el buen camino
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    19
    Poder de Reputación
    2
    Gracias Skaparate por la pronta y practica respuesta, lo pruebo en esta forma
    Adaraja

  12. #12
    Recien Llegado! Habitante Adaraja Está en el buen camino
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    19
    Poder de Reputación
    2
    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 skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    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 Adaraja Está en el buen camino
    Fecha de Ingreso
    01 jun, 11
    Mensajes
    19
    Poder de Reputación
    2
    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 skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    ¿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.

+ Responder Tema

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, 10: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