+ Responder Tema
Resultados 1 al 10 de 10

Tema: Problema con "jugando con los datos" del curso mysql

  1. #1
    Recien Llegado! Habitual Rafaxx Está en el buen camino
    Fecha de Ingreso
    04 ago, 11
    Ubicación
    Tarragona
    Mensajes
    13
    Poder de Reputación
    2

    Problema con "jugando con los datos" del curso mysql

    Mas que un problema ,es que no entiendo los últimos pasos para enviar la información del formulario a la base de datos. A ver si alun buen samaritano puede explicarme la parte de crear los archivos php.
    Os dejo el enlace de los pasos q no entiendo.

    http://www.comocreartuweb.com/curso-...los-datos.html

    Gracias de antemano

    Saludos

  2. #2
    Recien Llegado! Habitual Rafaxx Está en el buen camino
    Fecha de Ingreso
    04 ago, 11
    Ubicación
    Tarragona
    Mensajes
    13
    Poder de Reputación
    2
    Quizás no me haya explicado bien, lo que no acabo de entender son los pasos para que los datos vayan directamente a la base de datos. Me pierdo en el momento de crear los archivos php, para mi nivel esta explicado demasiado rápido . Si alguien me pudiera explicar mas detenidamente se lo agradecería.

    Saludos y gracias.

  3. #3
    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, en el archivo insertardatosentabla.php tienes que escribir lo siguiente:

    Código PHP:
    <?php
      
    include_once( 'config.php' ); // Esta línea pone a disposición todo lo que haya dentro del archivo entre comillas simples, vale decir, en este caso, todas las variables definidas en config.php
      // estarán disponibles en el archivo actual (insertardatosentabla.php)
      
    $nombre $_POST['NOMBRE']; // Lo que aparece entre comillas simples debe ser igual al atributo name de cada input que existe en el formulario
      
    $email $_POST['EMAIL'];
      
    $url $_POST['URL'];
      
    $estado $_POST['ESTADO'];
      
    $con mysql_connect$server$db_user$db_pass );  // Se conecta a la base de datos y se guarda la conexión en la variable $con
      
    mysql_select_db$database$con ) or die ( "No se pudo conectar a la base de datos $database: " mysql_error$con ) );
      
    $result mysql_query"INSERT INTO USUARIOS (`NOMBRE`, `EMAIL`, `URL`, `ESTADO`) VALUES ('$nombre', '$email', '$url', '$estado')" ); // Esta línea es la que inserta los datos en la
      // tabla USUARIOS. Si los datos son ingresados, entonces $result será igual a true, de lo contrario valdrá false.
      
    echo "<p>";
      if( 
    $result // Si $result es igual a true
        
    echo "Los datos se han ingresado satisfactoriamente</p>";
      else
        echo 
    "Ocurrió un error al ingresar los datos: " mysql_error$con ) . "</p>";

      
    mysql_free_result$result ); // Libera los resultados obtenidos de una consulta sql
      
    mysql_close$con ); // Cierra la conexión establecida con la base de datos.
    ?>
    Espero te sirva, saludos.

  4. #4
    Recien Llegado! Habitual Rafaxx Está en el buen camino
    Fecha de Ingreso
    04 ago, 11
    Ubicación
    Tarragona
    Mensajes
    13
    Poder de Reputación
    2
    No hay manera, voy a empezar de nuevo con el curso entero y despacito, algo me estoy dejando. Si lo soluciono lo postearé aquí.

  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
    Publica tu código mejor y lo revisamos (a ver que errores hay).

  6. #6
    Recien Llegado! Habitual Rafaxx Está en el buen camino
    Fecha de Ingreso
    04 ago, 11
    Ubicación
    Tarragona
    Mensajes
    13
    Poder de Reputación
    2
    El problema no es el código , creo. El problema es que no sé como poner los archivos en el HtmlKit. No acabo de entender la explicación del cursillo, de dónde va cada código en cada archivo.
    Lo que no acabo de entender son estos pasos.



    Para poder jugar con la información de una base de datos es imprescindible primero conectar con ella. Con jugar con la información me refiero a mostrar, insertar, crear, modificar o eliminar datos. Nosotros tenemos ya preparados los datos en la variable post que vimos, pero antes de insertar esos datos en la base de datos necesitamos conectar con ella.
    Los datos de conexión los tenemos ya y si me has hecho caso, los tendrás a mano escritos en algún papelito por tu mesa. Si no es así, te los recuerdo:
    Nombre de la base de datos: cartago_basedepruebas
    Nombre de usuario de la base de datos: cartago_pepe
    Contraseña: noteladigo
    Host: localhost
    En tu caso, en lugar de cartago tendrás que poner tu nombre de usuario del Cpanel tal y como te dije, además de tu propia contraseña, claro.
    Lás líneas de código Php que has de poner para abrir la conexión con esa base de datos son estas (en adelante coloreo de gris aquellas líneas que no son más que comentarios aclaratorios, oki? Para distinguirlo del resto de código php):
    <?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";
    ?>
    Las líneas de código realmente importantes son solo las que no llevan el símbolo // delante, pues esas son simples comentarios que si quieres puedes mantener (te lo recomiendo) para recordar para que sirve cada una de ellas. Realmente son solo cuatro las lineas importantes y en ellas se guardan en variables los datos de conexión.
    Podrías pensar que es un poco arriesgado dejar guardados los datos de la base de datos, con la contraseña y todo, en un archivo colgado en internet, pero como es código Php no hay riesgo alguno. Por qué?
    Si recuerdas lo que te comentaba al principio de hablarte del Php, es un código que solo lee el servidor de forma que, como no tenemos ningún echo en estas líneas, el resultado de todo este código en un navegador será nada, cero, ninguno. Esos datos son leidos por el servidor, pero es imposible que cualquier usuario pueda leerlos, así que tranquilo.
    Para no tener que escribir esas líneas cada vez que queramos abrir la conexión a la base de datos lo que haremos es guardar todo ese código en un archivo que llamaremos config.php y al que llamaremos cada vez que queramos abrir la base de datos (ya te digo cómo).
    Abre por tanto tu block de notas, escribe todo ese código dentro, cambia los valores por los tuyos (la contraseña y la palabra cartago por tu nombre de usuario en el Cpanel) y guarda el archivo con la extensión .php en la raiz de la carpeta en la que estés haciendo este ejemplo, vale? Ahora crea otro archivo más, también con extensión .php llamado insertardatosentabla.php
    Como ese archivo es Php puedes ya escribir sus etiquetas de apertura y cierre. Ya dijimos que las páginas Html empezaban con la etiqueta <html> y terminaban con </html> y que en cambio los archivos Php empezaban con <?php y terminaban con ?> así que escribe eso dentro y guarda los cambios.
    En este archivo llamado insertardatosentabla.php escribiremos el código Php necesario para incluir los datos guardados en la variable post dentro de la base de datos de ejemplo. Como adivinarás, lo primero es conectar con la base de datos.
    Para ello deberíamos escribir el código Php que habíamos guardado en el archivo config.php pero como lo tenemos en aquél archivo, basta con indicar que añada todo su contenido en esta otra página. Esto se hace muy rapidamente usando la palabra mágica include tal y como te muestro abajo:
    <?php include("config.php") ; ?>
    Con esto el servidor leerá el contenido de config.php cuando vea la línea del include y de este modo nos ahorramos escribir ese código cada dos por tres. Una vez que lo ha leido ya conoce las claves para la conexión. Ahora le indicamos que conecte con estas otras líneas:
    <?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());
    ?>
    Los comentarios (las he diferenciado con otro tono de color arriba), es decir, las líneas que empiezan por // hablan por si solas, no? La primera nueva línea conecta con el servidor y la segunda con la base de datos.
    Si por algún motivo falla la conexión con el servidor, se mostrará en el navegador el mensaje "error1" y se deberá seguramente a haber puesto mal el nombre del servidor, de usuario o la contraseña en el archivo config.php
    Si lo que falla es la selección de la base de datos, aparecerá en la pantalla "error2" y será seguramente por haber escrito mal el nombre de la base de datos en el archivo config.php
    Si no aparece ninguno de esos mensajes será que todo ha ido como esperabamos, aunque no lo notaremos por el momento. Lo importante será saber que la conexión está hecha!!!
    Solo nos queda indicar al servidor mediante el código Php que inserte los datos guardados en POST en la tabla USUARIOS. Esto se hace con esta sencilla línea de código:
    INSERT INTO base.tabla (nombre de los campos) values (datos correspondientes);
    que en nuestro caso tomaría la forma siguiente:
    INSERT INTO `cartago_basedepruebas`.`USUARIOS` (`NOMBRE`, `EMAIL`, `URL`, `ESTADO`) VALUES ('$_POST[NOMBRE]', '$_POST[EMAIL]', '$_POST[URL]', '$_POST[ESTADO]');
    En esa línea no hay nada raro, no? Se pone el nombre de tu base de datos, un punto, el nombre de la tabla y luego dentro del primer paréntesis el nombre de los campos y dentro del segundo paréntesis las palabras mágicas $_POST[nombre de campo], una para cada campo que rescatamos del formulario.
    Pues con eso queda guardada la información del formulario en nuesta base de datos. Qué tal? Te ha parecido muy complicado? Imagino que no. Quizás muy diferente a trabajar con Html, no? Pero te aseguro que hace tres días no sabia nada de Php, bases de datos ni de formularios y mira, aquí estoy explicándote cómo se usan, je je. Es cierto, tras unos cuantos ejemplos y testeos se me ha quedado bien grabado en la cabeza, no es muy dificil.
    Aún se pueden hacer miles de cosas con los valores guardados en la base de datos. Solo necesitamos aprender un poco más y podremos crear nuestros propios foros, sistemas de mensajes, de noticias, hacer más dinámicas nuestras webs dotándolas de registro de usuarios, etc, etc, etc. Pero sigamos poco a poco, je je je.



    Gracias, saludos.

  7. #7
    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
    Ah, ok. El código tiene que estar divido en 3 archivos:

    1.- El archivo HTML (que puede ser index.html) que contiene el formulario:

    Código HTML:
    <html>
    	<head></head>
    	<body>
    		<form action="insertardatosentabla.php" method="post">
    			<input type="text" name="nombre" />
    			<input type="text" name="url" />
    			<input type="text" name="email" />
                            <input type="text" name="estado" />
          <input type="submit" value="enviar" />
        </form>
      </body>
    </html>
    2.- El archivo config.php, el cual contiene la información para conectarse a la base de datos (pero no realiza la conexión):

    Código PHP:
    <?php
      $dominio 
    "localhost";
      
    $database "nombre_base_datos";
      
    $db_user "usuario_base_datos";
      
    $db_pass "contraseña_base_datos";
    ?>
    Este archivo no realiza ninguna acción por si solo. Aquí se definen variables, las cuales será utilizadas posteriormente al conectarse la base de datos, realizar consultas a la base de datos, etc..

    3.- El archivo insertardatosentabla.php (se puede llamar de cualquier forma, pero el parámetro action del form debe tener el mismo nombre) el cual recibe los valores de los elementos input del archivo HTML. Esto lo voy a dividir en pasos:

    3.1 - Se incluye el archivo config.php:

    Código PHP:
    <?php
      
    include_once( 'config.php' );
      
    // omití la etiqueta ?> a propósito, puesto que el archivo no termina aquí.
    Lo anterior es como decirle al interprete de PHP que todas las variables definidas en el archivo config.php estarán disponibles en el arhcivo insertardatosentabla.php, o sea, sería lo mismo que hacer esto:

    Código PHP:
    <?php
      
    // Se omite la función include_once( 'config.php' );
      // include( 'archivo' ) e include_once( 'archivo') hacen lo mismo, solo que este último muestra un error (e interrumpe la ejecución del script) si no encuentra el archivo especificado.
      
    $dominio "localhost";
      
    $database "nombre_base_datos";
      
    $db_user "usuario_base_datos";
      
    $db_pass "contraseña_base_datos";
    3.2 - Se reciben los datos del archivo HTML para poder utilizarlos en el script actual:

    Código PHP:
    <?php
      
    include_once( 'config.php' );
      
      
    // $_POST es un arreglo, el cual contienes parejas clave-valor (la clave es el índice y el valor es lo que contiene dicho índice).
      
    $nombre $_POST['nombre'];  // En este caso, el índice o clave es nombre (del <input type="text" name="nombre" /> en index.html) y su valor será lo que ingrese el usuario.
      // Haz la prueba escribiendo lo siguiente: echo $_POST['nombre']; en el archivo insertardatosentabla.php sin nada más
      
    $url $_POST['url'];
      
    $email $_POST['email'];
        
    $estado $_POST['estado'];
    Ahora las variables $nombre, $estado, $url e $email tendrán los valores de los respectivos input del index.html. Si escribes echo $nombre . $estado . $url . $email; podrás ver todos los valores (sólo si es que al enviar - presionar el botón enviar - el formulario, los campos no estaban vacíos, de lo contrario estarán en blanco).

    3.3 - En este paso tienes que conectarte al servidor de datos:

    Código PHP:
    <?php
      
    include_once( 'config.php' );
      
      
    $nombre $_POST['nombre'];
      
    $url $_POST['url'];
      
    $email $_POST['email'];
        
    $estado $_POST['estado'];

      
    $con mysql_connect$dominio$db_user$db_pass ); // Estas variables son las que se "incluyen" con include_once( 'config.php' );
      
    if( $con ) { // Si no se logra establecer la conexión se hará lo siguiente:
        
    echo '<p>Error, no se ha podido conectar con el servidor SQL: ' mysql_error();
        
    // Lo anterior se mostrará si es que no se ha establecido una conexión con el servidor (no con la base de datos)
        // y se mostrará el error que ocurrió con mysql_error();
        
    return; // Aquí le dices al intérprete que no continue con la ejecución del script.
      
    }
    3.4 - Queda seleccionar la base de datos:

    Código PHP:
    <?php
      
    include_once( 'config.php' );
      
      
    $nombre $_POST['nombre'];
      
    $url $_POST['url'];
      
    $email $_POST['email'];
        
    $estado $_POST['estado'];

      
    $con mysql_connect$dominio$db_user$db_pass );
      if( 
    $con ) {
        echo 
    '<p>Error, no se ha podido conectar con el servidor SQL: ' mysql_error();
        return;
      }
      
      
    mysql_select_db$database$con ) or die ( 'No se pudo seleccionar la base de datos ' $database '. Error: ' mysql_error$con ) );
      
    // La línea anterior selecciona la base de datos o muestra un mensaje de error en caso de que no se haya podido seleccionar.
    3.5 - En este paso se ejecuta la consulta y se comprueba si se ejecuto o no dicha instrucción:

    Código PHP:
    <?php
      
    include_once( 'config.php' );
      
      
    $nombre $_POST['nombre'];
      
    $url $_POST['url'];
      
    $email $_POST['email'];
        
    $estado $_POST['estado'];

      
    $con mysql_connect$dominio$db_user$db_pass );
      if( 
    $con ) {
        echo 
    '<p>Error, no se ha podido conectar con el servidor SQL: ' mysql_error();
        return;
      }
      
      
    mysql_select_db$database$con ) or die ( 'No se pudo seleccionar la base de datos ' $database '. Error: ' mysql_error$con ) );

      
    $sql "INSERT INTO tabla ( NOMBRE, EMAIL, URL, ESTADO ) VALUES ( '$nombre', '$email', '$url', '$estado' )"
      
    // La línea anterior es la consulta SQL. <tabla> es el nombre de la tabla dentro de la base de datos.
      
    $result mysql_query$sql$con );
      
    // Lo anterior ejecuta la consulta. Existen 2 tipos de consultas: las que modifican o alteran el contenido de las tablas o bases de datos y las que solo leen o extraen datos de las mismas.
      // Las que modifican datos, en PHP, devuelven un valor true si es que se modificó la tabla o base de datos y false en caso contrario.
      // Las consultas que extraen datos devuelven un recurso (un recurso es un tipo de dato en PHP, así como lo son int, boolean/bool, string, etc.)
      
      // Ahora se comprobará si se ejecuto la consulta:
      
    if( $result == true ) { // Querrá decir que sí se ejecuto la consulta:
        
    echo "<p>Se ejecutó la consulta con éxito</p>";
      }
      else 
    // Quiere decir que no se ejecutó la consulta:
        
    echo "<p>No se ejecutó la consulta. Razón: " mysql_error$con ) . "</p>";

      
    mysql_free_result $result ); // Esta línea libera los resultados de una consulta SQL.
      
    mysql_close$con );  // Esta línea cierra la conexión con el servidor de base de datos y libera los recursos. Siempre debe estar presente cuando se realice una conexión.
    ?>
    Finalmente, el código completo del archivo insertardatosentabla.php quedaría así:

    Código PHP:
    <?php
      
    include_once( 'config.php' );
      
      
    $nombre $_POST['nombre'];
      
    $url $_POST['url'];
      
    $email $_POST['email'];
        
    $estado $_POST['estado'];

      
    $con mysql_connect$dominio$db_user$db_pass );
      if( 
    $con ) {
        echo 
    '<p>Error, no se ha podido conectar con el servidor SQL: ' mysql_error();
        return;
      }
      
      
    mysql_select_db$database$con ) or die ( 'No se pudo seleccionar la base de datos ' $database '. Error: ' mysql_error$con ) );

      
    $sql "INSERT INTO tabla ( NOMBRE, EMAIL, URL, ESTADO ) VALUES ( '$nombre', '$email', '$url', '$estado' )"
      
    $result mysql_query$sql$con );
      
      if( 
    $result == true ) {
        echo 
    "<p>Se ejecutó la consulta con éxito</p>";
      }
      else
        echo 
    "<p>No se ejecutó la consulta. Razón: " mysql_error$con ) . "</p>";

      
    mysql_free_result $result );
      
    mysql_close$con ); 
    ?>
    Espero que esto despeje algunas dudas, sino vuelve a preguntar, puesto que de aquí no te vas sin aprender :D.

    Saludos.
    Última edición por skaparate; 20/09/2011 a las 01:53

  8. #8
    Recien Llegado! Habitual Rafaxx Está en el buen camino
    Fecha de Ingreso
    04 ago, 11
    Ubicación
    Tarragona
    Mensajes
    13
    Poder de Reputación
    2
    Perdona no haber respondido antes, he estado unos dias desconectado.
    Creo que ahora si me saldrá .

  9. #9
    Recien Llegado! Habitante leoni Está en el buen camino
    Fecha de Ingreso
    20 oct, 11
    Mensajes
    29
    Poder de Reputación
    1
    hola Skaparate,, tengo una duda,, el codigo del fomulario se pone en el codigo html ya sea index o cualquiera de las paginas? el config.php se crea con el block de notas se guarda como config.php? o ese config. se copia en la misma pagina html donde esta el formulario? y tercero, insertardatosentabla.php, tambien se guarda con ese nombre? ahora bien al momento de subir los datos al administrador de archivos en el cpanel se 3 archivos? o solo 2? ayuda por fa, pues estoy con el mismo problema no me abre ,,,

  10. #10
    Me va gustando esto... Habitante SurKaiser will become famous soon enough Avatar de SurKaiser
    Fecha de Ingreso
    15 oct, 11
    Mensajes
    228
    Poder de Reputación
    2
    Cita Iniciado por leoni Ver Mensaje
    hola Skaparate,, tengo una duda,, el codigo del fomulario se pone en el codigo html ya sea index o cualquiera de las paginas? el config.php se crea con el block de notas se guarda como config.php? o ese config. se copia en la misma pagina html donde esta el formulario? y tercero, insertardatosentabla.php, tambien se guarda con ese nombre? ahora bien al momento de subir los datos al administrador de archivos en el cpanel se 3 archivos? o solo 2? ayuda por fa, pues estoy con el mismo problema no me abre ,,,
    1.- si puede tener cualquier nombre pero ponerlo en el mismo logar que los demas archivos debe terminar en .html
    2.- No se copia en la misma pagina , se debe de crear config.php con bloc de notas u otro editor y ahi copiar el codigo que te dio el
    3.- si tambien se guarda con ese nombre , si son 3 archivos

    Saludos (PD: Recomiendo que estudies el codigo que te dio porque copy/paste no sirve de nada)
    Mi web en construccion :
    surkaiser . com . es
    "El conocimiento es Poder"

+ Responder Tema

Temas Similares

  1. Respuestas: 0
    Último Mensaje: 08/08/2011, 01:02
  2. Como "resumir" un texto que se encuentre en una base de datos, (para buscador)
    Por rodojpm en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 2
    Último Mensaje: 02/07/2011, 05:23
  3. Respuestas: 1
    Último Mensaje: 21/05/2011, 15:40
  4. como tomar la "id" de consulta mysql
    Por gjulian en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 5
    Último Mensaje: 06/11/2010, 21:53

Permisos de Publicación

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