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.
Marcadores