Comunidad de diseño web y desarrollo en internet online

Insertar datos en 2 tablas a la vez

Citar            
MensajeEscrito el 21 Dic 2008 02:36 pm
Buenas amigos.
Tengo un formulario para insertar datos en una base de datos. Va correcto. Lo que he intentado es que me lo inserte en 2 tablas difetenes de mi base de datos. A continuación posteo el codigo que he modificado (y que me he inVentado? :? )

Código PHP :

<?php
//Conexion con la base
mysql_connect("localhost","++++","++++"); 
//selección de la base de datos con la que vamos a trabajar 
mysql_select_db("aerotechdb"); 
if($usuario==NULL|$contrasena==NULL|$contrasena2==NULL|$mail==NULL) { 
echo "Un campo está vacio. Vuelve atrás en tu navegador y rellena todos los campos correctamente. Gracias."; 
}else{ 
// ¿Coinciden las contraseñas? 
if($contrasena!=$contrasena2) { 
echo "Las contraseñas no coinciden. Vuelve atrás en tu navegador y rellena todos los campos correctamente. Gracias."; 
}else{ 
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían 
$checkuser = mysql_query("SELECT nombre_usuario FROM mi_db WHERE nombre_usuario='$usuario'");
$checkuser1 = mysql_query("SELECT Nick FROM tblUsuarios WHERE Nick='$usuario'");
$usuario_exist = mysql_num_rows($checkuser); 

$checkmail = mysql_query("SELECT mail_usuario FROM mi_db WHERE mail_usuario='$mail'");
$checkmail2 = mysql_query("SELECT Email FROM tblUsuarios WHERE Email='$mail'"); 
$mail_exist = mysql_num_rows($checkmail); 

if ($mail_exist>0|$usuario_exist>0) { 
echo "EL nombre de usuario o la cuenta de correo estan ya en uso. Vuelve atrás en tu navegador y rellena todos los campos correctamente. Gracias."; 
}else{
//Todo parece correcto procedemos con la inserccion 
$query = "INSERT INTO mi_db (nombre_usuario,clave_usuario,mail_usuario,nombre_real,apellido1_real,apellido2_real,direccion_real,localidad_real,poblacion_real,cp_real,telefono_real) VALUES('$usuario','$contrasena','$mail','$nombre','$apellido1','$apellido2','$direccion','$localidad','$poblacion','$cp','$telefono')";
$query = "INSERT INTO tblUsuarios (Nick,Password,Email,nombre_real,apellido1_real,apellido2_real,direccion_real,localidad_real,poblacion_real,cp_real,telefono_real) VALUES('$usuario','$contrasena','$mail','$nombre','$apellido1','$apellido2','$direccion','$localidad','$poblacion','$cp','$telefono')";
mysql_query($query) or die(mysql_error()); 
echo "¡Enhorabuena! El usuario <b>$usuario</b> ha sido registrado de manera satisfactoria. Ahora ya puedes disfrutar de todas las ventajas de ser miembro de Aerotech Cullera. Podrás participar en sorteos, concursos, acceder a zonas exclusivas solo para miembros y muchas más cosas. En unos segundos serás redireccionado a la página inicial."; 
} 
} 
} 
?>


Alguien me puede decir si es esto correcto y correjirmelo?
Muchas gracias!

Por xematick

50 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 21 Dic 2008 03:39 pm
a vuelo de pajaro esta bien pero revisa el codigo de abajo
y averigua sobre joiners en sql y resumiras ese codigo

Código :

$checkuser = mysql_query("SELECT nombre_usuario FROM mi_db WHERE nombre_usuario='$usuario'"); 
$checkuser1 = mysql_query("SELECT Nick FROM tblUsuarios WHERE Nick='$usuario'"); 
$usuario_exist = mysql_num_rows($checkuser);  
 
$checkmail = mysql_query("SELECT mail_usuario FROM mi_db WHERE mail_usuario='$mail'"); 
$checkmail2 = mysql_query("SELECT Email FROM tblUsuarios WHERE Email='$mail'");  
$mail_exist = mysql_num_rows($checkmail); 


saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 21 Dic 2008 06:47 pm
tu pregunta es sobre PHP o Mysql ??


debes aprender a separar los conceptos, acabas de postear todo el codigo en ves de lo que realmente es relevante

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 21 Dic 2008 09:32 pm
Si no fuera relevante postear el código php, no lo hubira hecho. Es más que obvio que de lo que se está tratando es PHP y una consulta hacia mysql.
Aclarada esta obviedad, alguien tiene alguna idea de como seguir con esto?

Por xematick

50 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 21 Dic 2008 10:15 pm

  1. Tu obviedad no es tan obvia. El problema no es de PHP sino de SQL, como bien dice Inyaka.
  2. En tu inserción, asignas las dos consultas a la misma variable:

    Código PHP :

    $query = "INSERT INTO mi_db (nombre_usuario,clave_usuario,mail_usuario,nombre_real,apellido1_real,apellido2_real,direccion_real,localidad_real,poblacion_real,cp_real,telefono_real) VALUES('$usuario','$contrasena','$mail','$nombre','$apellido1','$apellido2','$direccion','$localidad','$poblacion','$cp','$telefono')";
    $query = "INSERT INTO tblUsuarios (Nick,Password,Email,nombre_real,apellido1_real,apellido2_real,direccion_real,localidad_real,poblacion_real,cp_real,telefono_real) VALUES('$usuario','$contrasena','$mail','$nombre','$apellido1','$apellido2','$direccion','$localidad','$poblacion','$cp','$telefono')";
    

  3. Tu código es optimizable con el uso de JOIN, como bien dice talcual.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

chrome
Citar            
MensajeEscrito el 21 Dic 2008 10:18 pm
¿puedes con php ejecutar la consulta?
si es asi el tema de php esta resuelto, excepto por que si vas ha hacer varias consultas podrías requerir saber el ultimo id insertado http://es.php.net/manual/es/function.mysql-insert-id.php

si te digo que el tema es sobre mysql es por algo:

Código MySQL :

INSERT INTO tabla1 
(campo1,campo2,campo3)
SELECT campo1,campo2,campo3 FROM tabla2 WHERE lo_que _se_te_de_la_gana = true

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 22 Dic 2008 07:08 am
Correcto Inyaka, desde mysql lo he probado y también lo he podido hacer como indicas. Disculpa mi impertinecia :oops:
The Friky, me he cojido a tu solución, era más sencillo de lo que parecia, con hacer $quey1 y $query2 bastaba ... A vesces uno se bloquea y no da con cosas obivas :lol:
gracias a todos! :P

Por xematick

50 de clabLevel



Genero:Masculino  

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.