registrar a un usuario desde php y almacenarlo en mysql con mysqli_query() SOLUC

Iniciado por jhonatanAsm, 14 Octubre 2011, 14:17 PM

0 Miembros y 2 Visitantes están viendo este tema.

jhonatanAsm

hola, tengo un problema al momento de añadir un usuario a una tabla de mysql,con el sgte codigo:


mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ($nombre,$edad,$pass)");




ya le puse un echo entre cada linea para ver si algo falla, y no hay problema ahí,tambien puse varios if(), pero no habian errores.

le cambie la consulta por select * from registro( asi se llama mi tabla), y con un mysql_fetch_array obtuve todos los valores de la tabla, entonces la conexion esta bien(aparentemente).

pd: al momento de crear mi tabla. le puse 4 columnas, un id int unsigned auto_increment primary key,nombre varchar(30) not null, edad int not null, pass varchar(20) not null. saludos.


-------------------------------------------------------------------------
GRACIAS A LA AYUDA DE LAS PERSONAS QUE HAN COMENTADO ABAJO ES QUE PUDE SOLUCIONARLO ASÍ:

para ingresar datos con mysqli_query se hace de la sgte manera;

$variable="juan";
$edad=20;

mysqli_query($conexion,"insert into registro (nombre,edad) values ('".$variable."','".$edad."');

como se habran dado cuenta las variables tienen que estar entre '".$variable."'

pd:no hay problema con el wamp server en windows 7 64 bits.

-------------------------------------------------------------------------
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

jhonatanAsm

#1
en la pag. de mysql, citan el ejemplo:

mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");


ayuda helme!.saludos




estoy usando wamp server 64 bit, no sé si ésto influye en la conexion, quiza se me ha olvidado configurar algo, estare pendiente de las respuestas gracias.




creo que es problema de wamp server en win7, alguien sabe como configurarlo??saludos!




encontre en otro foro a personas que tenias problemas con el wamp server, en win7 64 bits,

que servidor me recomiendan para win7 64 bit... saludos
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

~ Yoya ~

Dudo mucho que tenga que ser por el servidor.

Instala PhpMyAdmin y prueba hacer consultas SQL, si todas funcionan correctamente ps bien, el problema no esta con el serve.

Otra cosa, activa la directiva display_errors del php.ini y verifica que php este mostrando los errores. Tienes que provocar un error de sintaxis para saber si los errores están saliendo luego.

En el problema que tienes, lo mejor siempre es realizar un PoC (Prueba de conceptos), así todos podemos probar el código y verificar si existe algún error.

Y agrega todo el código que sea necesario, empezando con la conexión hacia mysql.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

jhonatanAsm

gracias por la atencion, bueno el trabajo esta dividido en 3 partes

1- en registro.php el usuario ingresa nombre, edad y contraseña:



<body>

<form method="POST" action="validarRegistro.php" >

<p>como te hubiera gustado llamarte:<input type="text" name="nombre" /></p>
<p>edad:<input type="text" name="edad" /></p>
<p>contraseña:<input type="password" name="pass" /></p>

<input type="submit" value="finalizar" />

</form>

</body>


2- los datos ingresados van a validarRegistro.php:


<?php
$host
="localhost";
$usuario="root";
$pass="";

$conexion=mysqli_connect($host,$usuario,$pass);

$nombre=$_POST['nombre'];
$edad=$_POST['edad'];
$pass=$_POST['pass'];

$bd="users";

$sbd=mysqli_select_db($conexion,$bd);

$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ($nombre,$edad,$pass)");

if(
$redireccion)
header("location: inicio.html");
else
header("location: http://www.google.com");

?>



-he cambiado la consulta, para obtener los datos de la tabla, y lo he conseguido.
solo al momento de ingresar datos tengo problemas.gracias por la atencion.saludos
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

~ Yoya ~

#4
Si el problema es con el serve aunque lo dudo, probaste realizar insert directamente desde un cliente MYSQL?

Debes verificar que existe contenido en las variables que recibes vía POST, yo  haria esto para probar nomas.

Código (php) [Seleccionar]
<?php
$host
="localhost";
$usuario="root";
$pass="";

$conexion=mysqli_connect($host,$usuario,$pass);

$bd="users";

$sbd=mysqli_select_db($conexion,$bd);

$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ('xDxx',15,'asasas11212')");

if(
$redireccion)
header("location: inicio.html");
else
header("location: http://www.google.com");

?>
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

jhonatanAsm

#5
gracias por el consejo, ya lo probe y no me funciono en win 7 64 bit.

-En una pc xp 32 bit, puse el mismo codigo con el wampServer 32bit y si me funciono.
no se si es por el S.O , o los bits... help me!. por ahora me instale el wampServer y mysql de 32 bit en win7 64 bit y no me funciono. alguien que me pueda ayudar,salu2.
o me podrian recomendar un server que a uds. les hayan funcionado en win 7 64 bit??ayudaa.
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

~ Yoya ~

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Hurubnar

Bueno, el error (creo) está al introducir los datos, que son variables. Tú estás haciendo lo siguiente:

Código (php) [Seleccionar]
$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ($nombre,$edad,$pass)");

Al ser $nombre, $edad y $pass unas variables, los debes poner entre apóstrofes ('):
Código (php) [Seleccionar]
$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ('$nombre','$edad','$pass')");

Espero haberte ayudado,
atte. Herio

jhonatanAsm

yo creo que linux es el sgte paso ( programar hardware ),   :silbar:
me convencì ( en estos dias ) de que estudio para aprender y xq me gusta ::) y todavia no profundizaré en los temas, asi que debido los problemas en win 7 64 bits, me paso a una compu con 32 bits ( mas tiempo para aprender, menos busqueda de compatibilidades ).

La batalla con win 7 64 bit aun no acaba, se posterga.saludos
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

hacknival

Cita de: Herio en 16 Octubre 2011, 16:21 PM
Bueno, el error (creo) está al introducir los datos, que son variables. Tú estás haciendo lo siguiente:

Código (php) [Seleccionar]
$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ($nombre,$edad,$pass)");

Al ser $nombre, $edad y $pass unas variables, los debes poner entre apóstrofes ('):
Código (php) [Seleccionar]
$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ('$nombre','$edad','$pass')");

Espero haberte ayudado,
atte. Herio

Yo casi no uso PHP pero estoy de acuerdo con Herio, posiblemente el error sea al llamar tus variables a parte de poner apostrofes seria usando una concatenacion. Quedaria algo asi (Mencione que no uso mucho php pero espero me entiendas en eso de la concatenacion):

$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values (".'$nombre'.",".'$edad'.",".'$pass'.")");

y si la variable edad es numerica no necesita apostrofes:

$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values (".'$nombre'.",".$edad.",".'$pass'.")");
espero te sirva saludos desde México...