Foros del Web » Programando para Internet » PHP »

Consulta multitabla.... no me sale!!!

Estas en el tema de Consulta multitabla.... no me sale!!! en el foro de PHP en Foros del Web. Hola a todos y gracias de antemano a los que se interesen por este post. Bueno, entrando en tema, tengo dos bd donde almaceno una ...
  #1 (permalink)  
Antiguo 24/01/2008, 12:02
 
Fecha de Ingreso: agosto-2006
Mensajes: 40
Antigüedad: 17 años, 7 meses
Puntos: 0
Consulta multitabla.... no me sale!!!

Hola a todos y gracias de antemano a los que se interesen por este post.


Bueno, entrando en tema, tengo dos bd donde almaceno una serie de datos y en un determinado momento quiero recoger algunos datos de la tabla1 y otros datos de la tabla 2 y con ellos crear registros en la tabla 3. Pero quiero que por cada consulta a tabla 1 y 2 se genere un único registro en la tabla 3.

Inicialmente realize dos consultas, una para tabla1 y otra para tabla 2 pero en la tabla 3 se me generaban 2 registros en vez de uno. Para esto estoy utilizando php.

un ejemplo del código que utilizo es:
Código HTML:
$idcnx = conectar ();
$sql = "SELECT * FROM tabla1 WHERE id='".$_POST['id']."'";
   
    	$res = mysql_query($sql) or die (mysql_error());
  			if (mysql_num_rows($res)>0){
   			 	while ($fila = mysql_fetch_array($res)) {

mysql_query("insert into tabla3(nombre)values('".$fila['nombreobjofre']."')");
  	
	 mysql_close($idcnx);
}
}


$idcnx2 = conectar ();
		mysql_query("SET NAMES 'utf8'");
   		// realizo la consulta.
   		$sql2 = "SELECT * FROM tabla2 WHERE propietario='$quienofrece'";
		$res2 = mysql_query($sql2) or die (mysql_error());
  			if (mysql_num_rows($res2)>0){
   			 	while ($fila2 = mysql_fetch_array($res2)) {


mysql_query("insert into intercambios(apeliidos)values('".$fila2['apellidos']."')");
 mysql_close($idcnx);
}
}
A ver si alguien me puede decir como hacer para que únicamente se me genere un registro en la tabla2

Gracias
  #2 (permalink)  
Antiguo 24/01/2008, 14:36
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: Consulta multitabla.... no me sale!!!

No se si le sirva, pero deberia probar creando un insert select. no los e usado muchio por eso no se lo creo exactamente pero la sintaxis es asi:

insert into tabla values('select * from tabla where campo=valor' )

creo que asi se le funcionaria y se aorrraria resto de codigo PHP
  #3 (permalink)  
Antiguo 24/01/2008, 15:04
 
Fecha de Ingreso: agosto-2006
Mensajes: 40
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Consulta multitabla.... no me sale!!!

Muchas gracias por tu aportación pero ya lo he resuelto, el código correcto es:

Código HTML:
$idcnx8 = conectar ();
	mysql_query("SET NAMES 'utf8'");
	$sql = "SELECT * FROM tabla1,tabla2 WHERE tabla1.id='".$_POST['id']."'AND tabla2.nombreobj='$nombreobjpuja' ";
	
	$res = mysql_query($sql) or die (mysql_error());
		if (mysql_num_rows($res)>0){
   			 	while ($fila = mysql_fetch_array($res)) {
	

					mysql_query("insert into tabla3(nombre)values(valor1); // esto es un mero ejemplo
	
	
	
		}
	}
Espero que con este script haya ayudados a aquellos que se han encontrado con un problema similar
  #4 (permalink)  
Antiguo 24/01/2008, 19:22
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Consulta multitabla.... no me sale!!!

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:04.