Código PHP no ingresa datos a mi base de datos

Dirtyboss Seguir

Préstamo
Zeta
Desde
29 Sep 2011
Mensajes
1.659
Bueno, no supe cómo explicarme en el título, ya que soy muy nuevo en esto.

Estoy comenzando un proyecto para hacer una tipo bitácora aquí en mi trabajo. Apenas estoy haciendo pruebas de cómo ingresar datos por medio de un formulario con html y php.

Este es mi index (de prueba)
PHP:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Formulario</title>
</head>
<body>
<form method="post" action="formu2.php">
    Nombre : <input type="text" name="nombre"><br>
    Apellido : <input type="text" name="Apellido"><br>
    <br>
    <br><br>
    <input type="submit" name="valider" value="Enviar">
</form>
</body>
</html>

Y este es el código que hace que ingrese (supuestamente) la información a la base de datos:

PHP:
<html>
<head>
</head>
<body>
<?php
$nombre = $_POST['nombre'];
$Apellido = $_POST['Apellido'];
mysql_connect("localhost", "root", "")
or die ("Fallo en el establecimiento de la conexión");
mysql_select_db("Prueba")
or die ("Error en la selección de la base de datos");
mysql_query("INSERT INTO usuarios (nombre,apellido) VALUES ('$nombre','$Apellido')");
mysql_select_db("Prueba");
mysql_close();
?>
</body>
</html>

Estoy trabajando en local (como se puede ver) pero lo curioso es que solamente pude ingresar un registro a mi base de datos. Al escribir nuevamente LOCALHOST en mi navegador e ingresar otro nombre y apellido, ya no guarda la información.

¿A qué se debe el fallo?

Gracias.
 

bracket

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 Jul 2013
Mensajes
54
Qué pasa si intentas ingresando otro registro en la tabla mediante un query directo a MySQL ?
 

Surkaiser

Gamma
Programador
Desde
13 Ene 2012
Mensajes
292
Bueno ya te iba a limpiar tu codigo php porque le faltan detalles, pero leí que solo pudiste ingresar un registro, pues bien con eso se me vino a la mente que debes tener solo 2 campos en tu tabla de la base de datos ¿Cierto? ... lo que debes hacer es agregar un nuevo campo a la tabla antes de nombre y ponerle "id" con los valores not null auto increment PRIMARY KEY

luego intenta nuevamente y seguro ya podrás :encouragement:

en caso de que no dime para limpiarte tu codigo.

saludos
 

erdj

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
28 Nov 2012
Mensajes
98
Como no sé como as creado la tabla, supondre que tienes 2 campos nombre y apellido. Si haces esto citado anteriormente te guardara sólo una vez puesto que guardas encima de lo que tienes y por mucha veces que cargues te hará eso, si quieres guardar más. Mete por ejemplo un id con clave primaria y un autoinctemento.

Si no es este caso, enseñanos la sentencia de sql con la que creaste la tabla.

Un saludo.
 

Foocux

Beta
SEO
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Ago 2013
Mensajes
91
Lo que pasa es que en la query, en vez de leer la variable esta imprimiendo $nombre en texto plano, intenta cambiando la linea que coloco abajo. Otra cosa que veo es que la manera en que conectas a la base de datos es muy sucia, osea no es muy optima y aparte un poco desorganizada.

PHP:
mysql_query("INSERT INTO usuarios (nombre,apellido) VALUES ('".$nombre."','".$Apellido."')");
 

Dirtyboss

Préstamo
Zeta
Desde
29 Sep 2011
Mensajes
1.659
Qué pasa si intentas ingresando otro registro en la tabla mediante un query directo a MySQL ?

Acabo de hacerlo directamente con instrucciones de mysql (sql) y así sí graba los datos.

---------- Post agregado el 04-sep-2013 hora: 11:37 ----------

Bueno ya te iba a limpiar tu codigo php porque le faltan detalles, pero leí que solo pudiste ingresar un registro, pues bien con eso se me vino a la mente que debes tener solo 2 campos en tu tabla de la base de datos ¿Cierto? ... lo que debes hacer es agregar un nuevo campo a la tabla antes de nombre y ponerle "id" con los valores not null auto increment PRIMARY KEY

luego intenta nuevamente y seguro ya podrás :encouragement:

en caso de que no dime para limpiarte tu codigo.

saludos

Hola compañero, es así como tengo los campos, id_usuario, nombre y apellido, y el id_usuario es primario, not null auto increment. Le hice un cambio a ese campo, intentaré volver a ejecutar.

---------- Post agregado el 04-sep-2013 hora: 11:44 ----------

Lo que pasa es que en la query, en vez de leer la variable esta imprimiendo $nombre en texto plano, intenta cambiando la linea que coloco abajo. Otra cosa que veo es que la manera en que conectas a la base de datos es muy sucia, osea no es muy optima y aparte un poco desorganizada.

PHP:
mysql_query("INSERT INTO usuarios (nombre,apellido) VALUES ('".$nombre."','".$Apellido."')");

Sí, seguramente es de lo peor la forma en la que la estoy haciendo. Pero de esto no sé nada. Lo estoy haciendo desde 0 viendo tutoriales en internet, y lo hago a como Dios me da a entender.

Y aprovechando, le hice cambios al campo ID y ya me ha dejado insertar más nombres directamente desde el formulario.

Si alguno de ustedes sabe de un buen curso de php, html y cosas que necesito, se los agradeceré

Así que ya funciona!!! Gracias
 

Foocux

Beta
SEO
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Ago 2013
Mensajes
91
La mejor forma de aprender cualquier lenguaje de programacion es codeacademy, que si mal recuerdo la pagina es de los creadores de facebook pero es muy buena, lamentablemente cuando yo aprendi esa pagina no existia y me tube que romper la cabeza. Otra cosa es siempre mantenerte al tanto de todas las actualizaciones que hace PHP, al igual que estudiar la forma de programar, para mi la mejor es mvc ligado a poo.
 

Dirtyboss

Préstamo
Zeta
Desde
29 Sep 2011
Mensajes
1.659
La mejor forma de aprender cualquier lenguaje de programacion es codeacademy, que si mal recuerdo la pagina es de los creadores de facebook pero es muy buena, lamentablemente cuando yo aprendi esa pagina no existia y me tube que romper la cabeza. Otra cosa es siempre mantenerte al tanto de todas las actualizaciones que hace PHP, al igual que estudiar la forma de programar, para mi la mejor es mvc ligado a poo.

Excelente tu recomendación y te la agradezco. Tal vez me estoy metiendo en algo muy grande, pero dicen que nunca es tarde para aprender. Espero tener éxito con mi formulario, base de datos, tablas relacionadas, reportes, consultas y más.

Saludos
 
Arriba