Foros del Web » Programando para Internet » PHP »

Duda con Inner Join

Estas en el tema de Duda con Inner Join en el foro de PHP en Foros del Web. Hola, que tal? Estoy intentando realizar un php que borre datos de la segunda tabla siempre que se equipare con el dato de la primera ...
  #1 (permalink)  
Antiguo 05/10/2012, 13:58
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 43
Antigüedad: 11 años, 7 meses
Puntos: 0
Duda con Inner Join

Hola, que tal?

Estoy intentando realizar un php que borre datos de la segunda tabla siempre que se equipare con el dato de la primera tabla, y traté de realizar un Inner Join que me trajese todo lo seleccionado a un array, pero tengo un error y no entiendo.

Mis tablas son estas:

Kitnombres:

IDK | kitnombre | kitdescripcion | fotogrande

1 | La delicia | Kit grande | 10521.jpg
2 | Prueba2 | Kit bonito | 10522.jpg
3 | Prueba3 | Kit especial | 10523.jpg
4 | Prueba4 | Kit barato | 10524.jpg

kitproductosincluidos:

fotok | minik | productok | IDnum

a.jpg | mini a.jpg | producto a | 1
b.jpg | mini b.jpg | producto b | 1
c.jpg | mini c.jpg | producto c | 1
d.jpg | mini d.jpg | producto d | 1
e.jpg | mini e.jpg | producto e | 1
f.jpg | mini f.jpg | producto f | 1
g.jpg | mini g.jpg | producto g | 1
h.jpg | mini h.jpg | producto h | 1

he escrito lo siguiente

Código PHP:
$consultaG "SELECT IDK FROM kitnombres
            WHERE kitnombre = '$Id'"
;
mysql_query($consultaG);            
$guardadomysql_query($consultaG$cnx);
$filaG mysql_fetch_array($guardado);
$IDK   $filaG['IDK'];
echo 
$IDK
Código PHP:
$consultaJoin "SELECT * FROM kitnombres
                INNER JOIN kitproductosincluidos
ON kitnombres.IDK = kitproductosincluidos.IDnum AND kitproductosincluidos = '$IDK'"
;
$guardadoJoin mysql_query($consultaJoin$cnx) or die(mysql_error());
$filaJoin mysql_fetch_array($guardadoJoin) or die(mysql_error());

echo 
$filaJoin['IDK'].$filaJoin['kitnombre'].$filaJoin['kitdescripcion'].$filaJoin['fotogrande'].'</br>'.$filaJoin['fotok'].$filaJoin['minik'].$filaJoin['productok'].$filaJoin['IDnum'].'Tiene que haber 8'
Pero me deja este mensaje de error:

Unknown column 'kitproductosincluidos' in 'on clause'

He probado esto en el PhpMyAdmin y me trae lo que pido, no entiendo el error
Omití el código que no es pertinente al error. A la base de datos me conecto bien y elegí la correcta
  #2 (permalink)  
Antiguo 05/10/2012, 14:04
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Duda con Inner Join

Código PHP:
Ver original
  1. $consultaJoin = "SELECT * FROM kitnombres
  2.                INNER JOIN kitproductosincluidos
  3. ON kitnombres.IDK = kitproductosincluidos.IDnum AND kitproductosincluidos = '$IDK'";//aqui esta el error sql kitproductosincluidos.?algo = '$IDK'"
  4. $guardadoJoin = mysql_query($consultaJoin, $cnx) or die(mysql_error());
  5. $filaJoin = mysql_fetch_array($guardadoJoin) or die(mysql_error());
  6.  
  7. echo $filaJoin['IDK'].$filaJoin['kitnombre'].$filaJoin['kitdescripcion'].$filaJoin['fotogrande'].'</br>'.$filaJoin['fotok'].$filaJoin['minik'].$filaJoin['productok'].$filaJoin['IDnum'].'Tiene que haber 8';

el error dice que kitproductosincluidos no es una columna segun veo es el nombre de la tabla
  #3 (permalink)  
Antiguo 05/10/2012, 14:16
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 43
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Duda con Inner Join

Cita:
Iniciado por maxpower2008 Ver Mensaje
[HIGHLIGHT="PHP"]
el error dice que kitproductosincluidos no es una columna segun veo es el nombre de la tabla
No entiendo, justamente lo que yo estoy tratando de decirle a mysql es que se fije en la columna IDnum de la tabla kitproductosincluidos. Hay un error en el codigo que escribi?
  #4 (permalink)  
Antiguo 05/10/2012, 14:21
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Duda con Inner Join

Cita:
Iniciado por lionel1989 Ver Mensaje
No entiendo, justamente lo que yo estoy tratando de decirle a mysql es que se fije en la columna IDnum de la tabla kitproductosincluidos. Hay un error en el codigo que escribi?
ese clausula and no va en el join ese and iria despues con un where.
  #5 (permalink)  
Antiguo 05/10/2012, 14:28
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: Duda con Inner Join

Si pero deberia ser asi:
Código PHP:
Ver original
  1. $consultaJoin = "SELECT * FROM kitnombres
  2.               INNER JOIN kitproductosincluidos
  3. ON kitnombres.IDK = kitproductosincluidos.IDnum AND kitproductosincluidos.IDnum = '$IDK'"

Cita:
Unknown column 'kitproductosincluidos' in 'on clause'
no le habias definido la colmunna le pasaste el nombre de la tabla pero te falto la columna kitproductosincluidos.IDnum
  #6 (permalink)  
Antiguo 05/10/2012, 14:31
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 43
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Duda con Inner Join

Cita:
Iniciado por maxpower2008 Ver Mensaje
ese clausula and no va en el join ese and iria despues con un where.
Muchisimas gracias señor, tal cual dijo.

Código PHP:
$consultaJoin "SELECT * FROM kitnombres
                INNER JOIN kitproductosincluidos
    ON kitnombres.IDK = kitproductosincluidos.IDnum
    WHERE IDnum = '$IDK'"

jlct, tienes razón!! se me habia pasado muy por alto
por algo sigo siendo un novato

Código PHP:
$consultaJoin "SELECT * FROM kitnombres
               INNER JOIN kitproductosincluidos
ON kitnombres.IDK = kitproductosincluidos.IDnum AND kitproductosincluidos.IDnum = '$IDK'" 
funciona tambien

Te agradezco mucho !

Etiquetas: mysql
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 12:32.