Foros del Web » Programando para Internet » PHP »

Consulta dentro de consulta

Estas en el tema de Consulta dentro de consulta en el foro de PHP en Foros del Web. Hola!! a ver, tengo una consulta normal y corriente: Código PHP: $query_select  =  "select * from videos where id = "  .  $id  .  " " ;                      $result_select  =  mysql_query ( $query_select ...
  #1 (permalink)  
Antiguo 09/07/2004, 01:56
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 16 años, 1 mes
Puntos: 59
Consulta dentro de consulta

Hola!!

a ver, tengo una consulta normal y corriente:
Código PHP:
$query_select "select * from videos where id = " $id " ";
                    
$result_select mysql_query($query_select$link);
                    
$num_posts mysql_num_rows($result_select);
                    while (
$row mysql_fetch_array($result_select)) {

echo 
"<a href=descargar.php?var=>=>".$row[0].">".$row[1]."</a><br>";

Que funciona para descargar el archivo. Ahora, algunos archivos vienen por parte, cuando hay una segunda parte quiero que imprima el link a la segunda parte (o la tercera, de ser el caso). Claro, me encontré con un error cuando trataba de hacer otra consulta dentro de la misma consulta para detectar si hay partes

Código PHP:
$query_select "select * from videos where parte = " $nombre " "
Las '2das partes' tienen el campo 'parte' con el titulo del archivo original.

La tabla va mas o menos así:

id archivo titulo parte

en caso de seer segunda parte o tercera, el titulo queda en blanco y el campo parte se rellena con el título del original.

Gracias de antemano,
__________________
Cool Village
@Wakkos
  #2 (permalink)  
Antiguo 09/07/2004, 08:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm yo enfocaría el problema de otra manera (el modelo de datos que tienes):

Tabla "archivos"
id_archivo
titulo
y otras propiedades de tu "archivo"

Tabla "partes"
id_parte
id_archivo
nombre_archivo
blabla

Lo que pretendo es que veas que estoy realizando una relación 1->N ya que tienes un "archivo" con N partes (de 1 a N).

Así con una consulta tipo:

$sql="SELECT partes.nombre_archivo FROM archivos,partes WHERE archivo.id_archivo=partes.id_parte AND archivo.titulo='$titulo'";

Obtendría las N partes de tu archivo (localizado en ese caso por un campo de "archivo" .. el titulo por ejemplo .. o el ID o lo que gustes).

Si quisieras sacar un listado de tus N archivos y sus N partes tan sólo añade los campos que quieres ver de "archivos":

$sql="SELECT archivo.titulo,partes.nombre_archivo FROM archivos,partes WHERE archivo.id_archivo=partes.id_parte";

(veras repetido "archivo.titulo" por las N partes que tenga el archivo .. pero eso .. dependiendo del fin que le des para "visualizarlo" se puede solventar sin problemas.)

Un saludo,
  #3 (permalink)  
Antiguo 09/07/2004, 09:29
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 16 años, 1 mes
Puntos: 59
weee, eso era lo que buscaba Cluster, la manera de enfocarlo. Muchísimas gracias!
__________________
Cool Village
@Wakkos
  #4 (permalink)  
Antiguo 21/07/2004, 04:42
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 16 años, 1 mes
Puntos: 59
Abrí un tema nuevo y no era necesario... (Sorry)
tengo un par de tablas que van algo así:

TABLA 1

ID, NOMBRE, etc...

TABLA 2

ID, ID_tabla1, etc...

Quiero seleccionar * from TABLA 1 y si hay un ID_tabla1 en la tabla 2 que se corresponda con la tabla 1, que lo imprima. (para que debajo de la impresión del campo de tabla1 salga el ID_tabla1 de la tabla2)

Tebgo esto, pero no me imprime los campos que no tienen una correspondencia en ID_tabla1.

Código PHP:
$query_select "SELECT videos.img1,videos.img2,videos.img3,videos.img4,videos.descripcion,videos.id_cvv,videos.titulo,partes.id_cvv,partes.id_video  FROM videos,partes WHERE videos.id=".$id." and partes.id_video=".$id.""
Donde $ID es el campo ID en tabla1 y por supuesto el campo ID_tabla1 en la tabla2 (en caso de existir, repito)


Gracias de antemano por la ayuda!!
__________________
Cool Village
@Wakkos
  #5 (permalink)  
Antiguo 21/07/2004, 07:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

En lugar de hacer un FROM tabla1,tabla2 WHERE ..., lo mejor es usar JOIN: www.mysql.com/join . Asi podras listar los id que esten en tabla1 pero no en tabla2.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 21/07/2004, 08:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ya que abristes un nuevo tema con esa pregunta concreta .. Podrías seguirlo en este mensaje (y que moví al foro de BD para que te orienten sobre que consulta SQL es la más idónea)

http://www.forosdelweb.com/f21/seleccion-campos-varias-tablas-218299/

Un saludo,
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:16.