Foros del Web » Programando para Internet » PHP »

Consultas anidadas ODBC

Estas en el tema de Consultas anidadas ODBC en el foro de PHP en Foros del Web. Tengo 2 tablas, empresas y productos. En productos puede haber 2 empresas (codemp1, codemp2), para sacar el nombre de la empresa tengo que hacer 2 ...
  #1 (permalink)  
Antiguo 29/09/2009, 04:31
 
Fecha de Ingreso: julio-2009
Mensajes: 46
Antigüedad: 15 años, 4 meses
Puntos: 0
Busqueda Consultas anidadas ODBC

Tengo 2 tablas, empresas y productos.
En productos puede haber 2 empresas (codemp1, codemp2), para sacar el nombre de la empresa tengo que hacer 2 consultas a la tabla empresas. Lo he intentado hacer de esta manera:

Código:
$sql = "SELECT articulos.carticulo, articulos.cempresa1, articulos.cempresa2, articulos.descripcion, empresas00.cemp, empresas00.nombrempresa
FROM articulos INNER JOIN empresas00
ON empresas00.cemp=articulos.cempresa1";

$result = odbc_exec($conn, $sql);
    while ($row = odbc_fetch_row($result))
    { ...
Con esto voy leyendo lo que me devuelve la consulta y si hay cempresa2 (variable cemp2) hago esto:
Código:
...
		if ($cemp2 != "0"){
			$sql2 = "SELECT nombrempresa FROM empresas00 WHERE cemp=$codigo_empresa2";
			$result2 = odbc_exec($conn, $sql2);
			$nombre_client2 = htmlentities (odbc_result($result2, "tmnoml"));
		}
A la segunda consulta es cuando me sale error de SQL, la primera la hace perfectamente.
Se podría hacer todo con una consulta?
  #2 (permalink)  
Antiguo 29/09/2009, 08:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Consultas anidadas ODBC

Es probable que te falten las comillas simples en el valor de tu string SQL. Ahora si ya estas haciendo el join primero con la tabla ya no necesitas hacer el segundo Query ya que ya traes el valor en el primero.

Saludos.
  #3 (permalink)  
Antiguo 29/09/2009, 10:21
 
Fecha de Ingreso: julio-2009
Mensajes: 46
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas anidadas ODBC

Cita:
Iniciado por GatorV Ver Mensaje
Es probable que te falten las comillas simples en el valor de tu string SQL. Ahora si ya estas haciendo el join primero con la tabla ya no necesitas hacer el segundo Query ya que ya traes el valor en el primero.

Saludos.
Probado con comillas simples y dobles... el mismo fallo.
El problema es que debo obtener de 2 codigos de empresa (tablaA) los dos nombres (tablaB).
  #4 (permalink)  
Antiguo 29/09/2009, 13:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Consultas anidadas ODBC

Si pones comillas simples no tiene porque fallar:
Código PHP:
Ver original
  1. $sql2 = "SELECT nombrempresa FROM empresas00 WHERE cemp='$codigo_empresa2'";

Saludos.

PD Investiga bien el join, tu puedes obtener muchos datos de una misma tabla si la "unes" varias veces.

Saludos.
  #5 (permalink)  
Antiguo 30/09/2009, 03:57
 
Fecha de Ingreso: julio-2009
Mensajes: 46
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas anidadas ODBC

Hola finalmente no era cuestión de comillas, simplemente he hecho la conexión mediante una clase y sus funciones y la instancio cada vez que necesito sacar valores, con una consulta sql diferente.
Si alguien lo necesita, que me escriba y envío la clase y su uso.

Gracias GatorV.
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 22:41.