Conectar Php con Mysql (phpMyadmin)

Holacomo estas, tengo el siguiente inconveniente estoy desarrollando una página web en Dreamweaver con lenguaje de programación PHP haciendo uso de la herramienta XAMPP que trae el Apache, Mysql, Mercury y Filezilla; Tengo la base de datos en Mysql que se accide por internet con el phpmyadmin, pero no he podido enviar los datos que se cargan mediante formulario del dreamweaver a la base de datos, el ejemplo es muy simple y lo conseguí de internet aplicándolo a mi proyecto,,, pero a pesar de que no hay errores en el código no me envía los datos a la base de datos que es lo que necesito, este es el código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hola Mundo</title>
</head>
<body>
<p><font face="Arial, Helvetica, sans-serif"></font></p>
<form id="form2" name="form2" method="post" action="Prueba.php"> <!Prueba.php es la pagina que esta detras-->
<label for="Nombre2">Nombre</label>
<input type="text" name="Nombre" id="Nombre" />
</form>
<p>
<label for="Email">Email</label>
<input type="text" name="Email" id="Email" />
</p>
<p>
<label for="Pais_Ciudad">Pais_Ciudad</label>
<input type="text" name="Pais_Ciudad" id="Pais_Ciudad" />
</p>
<input type="submit" name="valider" value="Enviar" />
<?php
// datos de configuracion
$ip = "localhost";
//$ip = 'localhost';
$usuario = "root";
$password = "califele2011";
$db_name = "omnilife";
// conectamos con la db
$conn = mysql_connect($ip,$usuario,$password) or die();
// seleccionamos la base de datos
$huboerror = mysql_select_db($db_name,$conn) or die();
// si se envia el formulario
if ( !empty($_POST['submit']) ) {
$query = "INSERT INTO 'boletin' (Nombre,Email,Pais_Ciudad) values ('{$_POST['Nombre']}','{$_POST['Email']}','{$_POST['Pais_Ciudad']}')";
$response = mysql_query($query, $conn);
}
?>
<br>
<br><br>
</body>
</html>

1 respuesta

Respuesta
1
Por lo que veo el código no da ningún problema hasta que llega a la consulta sql, seguramente por el tema de las comillas simples, aun así creo que es una buena costumbre que antes de pasar los datos al formulario se controle si los datos son correctos, aunque también puedes hacerlo con javascript, de todas formas el recibir los datos en variables, hace más sencillo montar la consulta SQL, lo que quedaría algo así:
if ( !empty($_POST['submit']) ) {
$nombre = $_POST['Nombre'];
$email = $_POST['Email'];
$pais = $_POST['Pais_Ciudad'];
$query = "INSERT INTO 'boletin' (Nombre,Email,Pais_Ciudad) values ('$nombre','$email','$pais')";
$response = mysql_query($query, $conn);
}
Otra cosa es que doy por hecho que el documento que me has copiado se llama Prueba.php, ya que así el formulario se llamaría así mismo. Lo que me lleva a hacer otro cambio, ya que para comprobar que se recibe el formulario tendrías que comprobar si llega la variable del botón es decir así: if ( ! empty($_POST['valider']) ) {
Y para optimizarlo más al entrar en la página preguntaría si llegan datos del formulario en tal caso creo la conexión y guardo los datos, en caso contrarío cargo sólo el formulario:
Todo el código con los cambios queda así:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hola Mundo</title>
</head>
<body>
<?php
if ( !empty($_POST['valider']) ) {
// datos de configuracion
$ip = "localhost";
//$ip = 'localhost';
$usuario = "root";
$password = "califele2011";
$db_name = "omnilife";
// conectamos con la db
$conn = mysql_connect($ip,$usuario,$password) or die();
// seleccionamos la base de datos
$huboerror = mysql_select_db($db_name,$conn) or die();
// si se envia el formulario
$nombre = $_POST['Nombre'];
$email = $_POST['Email'];
$pais = $_POST['Pais_Ciudad'];
$query = "INSERT INTO 'boletin' (Nombre,Email,Pais_Ciudad) values ('$nombre','$email','$pais')";
$response = mysql_query($query, $conn);
}else{
?>
<form id="form2" name="form2" method="post" action="index.php"> <!Prueba.php es la pagina que esta detras-->
<label for="Nombre2">Nombre</label>
<input type="text" name="Nombre" id="Nombre" />
<p>
<label for="Email">Email</label>
<input type="text" name="Email" id="Email" />
</p>
<p>
<label for="Pais_Ciudad">Pais_Ciudad</label>
<input type="text" name="Pais_Ciudad" id="Pais_Ciudad" />
</p>
<p>
<input type="submit" name="valider" value="Enviar" />
</p>
</form>
<?php
}
?>
</body>
</html>
Pruébalo y dime si te funciona... si no te funciona estaría bien que me pasaras el Create Table de la base de datos por si pudiera venir por ahí el fallo...
Hola muchas gracias por tu interés y tu ayuda desafortunadamente no me sirvió el código al ejecutar la página web, pese a que no hay errores ni warnings no se ve los registros en la base de datos, me pedías el código del create table,,, pues el phpmyadmin no me deja ver sino una instrucción sql (SELECT * FROM `boletín` WHERE 1) pero los tipos de datos de la tabla son los siguientes:
Nombre varchar(50) ascii_general_ci
Email varchar(100) ascii_general_ci
Pais_Ciudad varchar(60) ascii_general_ci
IdBoletin int(100) No None AUTO_INCREMENT
Pues no se si sea más sencillo hacerla por Sql server, de todos modos también tengo creada la basew de datos en esta herramienta.
Gracias.
Pues nos va a tocar ir probando cosas hasta que saquemos el fallo, por ejemplo estaría bien ver que toda la información del formulario llega bien a la parte donde se inserta la información. Quedaría algo así:
<body>
<?php
print_r($_REQUEST);
Con esa función te tiene que mostrar todo el array de variables y contenido de las mismas que vienen del formulario.
Por otro lado sustituye la linea de la sentencia SQL por esta:
$query = "INSERT INTO 'boletin' (`Nombre`, `Email`, `Pais_Ciudad`) values ('$nombre','$email','$pais')";
Luego me cuentas si ves algo raro...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas