Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consejo sobre consulta

Estas en el tema de Consejo sobre consulta en el foro de PHP en Foros del Web. Muy buenas tardes, necesito de vuestro conocimiento para una extracción de datos de diferentes tablas. Es la ultima parate que me falta por extraer. Tengo ...
  #1 (permalink)  
Antiguo 30/03/2015, 12:31
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Consejo sobre consulta

Muy buenas tardes, necesito de vuestro conocimiento para una extracción de datos de diferentes tablas.

Es la ultima parate que me falta por extraer.

Tengo estas tres tablas en BD.

Curso: Id , strTitulo
Unidad: Id, Id Curso, strTitulo
Tema: Id, Id Unidad, strTitulo, strContenido

Vale ya tengo preparado para que muestre en la pagina web que se representaria más o menos asi.

1º de ESO.

Unidad 1: tal tal tal

Tema1
Tema2
Tema3 .etc...

Asi hasta los 4 cursos.

Bueo pues cuando entras a cada tema, estoy intentando sacar informacion de las mismas tablas y otras.

Se me representa así:

Unidad " la que le pertenece " " en la que esta alojada el tema "
Tema " tema que estamos leyendo "
Escritor " el que lo escribe "

Luego ya todo el contenido del tema correspondiente.

Mi problema lo tengo con la Unidad, por que el tema siempre me saca el titulo del que estoy leyendo, pero necesito que en unidad me salga en que unidad estoy.

Esta es la primera consulta con la que saco todos los datos:

Código PHP:
$queryTemas "SELECT Id, IdUnidad, strTitulo , strContenido FROM Tema Where Id = " $_GET['IdTema'] ;
        
$temas mysql_query($queryTemas) or die('Consulta fallida: ' mysql_error()); 

Aquí intento hacer la consulta para la que me saque la unidad, pero he intentado de muchas formas y no lo consigo, lo demas me lo saca perfecto. He de decir que la consulta de arriba esta echa sobre la tabla Tema, y necesito sacar la unidad, que el titulo esta en la tabla Unidad, pero lo saca de la Id de tema

Código PHP:
$queryUnidades "SELECT * FROM Unidad ";
        
$unidades mysql_query($queryUnidades) or die('Consulta fallida: ' mysql_error());
        
        

if (
$tema mysql_fetch_assoc($temas)) {
   

                
   
   if (
$unidad mysql_fetch_assoc($unidades)) 
   
   
    echo 
"<div class=\"ver_indice2\">Unidad:  <span class=\"testado\">".$unidad['Id'] . "</span><br />
 
 
              Tema:  <span class=\"testado\">" 
$tema['strTitulo'] . "</span><br />
             
             Autor:  <span class=\"testado\">Hector Pascual Ros</span>\n"
;
    
    
    
    echo 
"<span class=\"separador45\" </span></div>\n";

        
    
        
        echo 
"<div class=\"temario1\"> " $tema['strContenido'] . " </h2>\n"
  #2 (permalink)  
Antiguo 31/03/2015, 08:08
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Consejo sobre consulta

Nadie por favor?
  #3 (permalink)  
Antiguo 31/03/2015, 12:18
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Respuesta: Consejo sobre consulta

Yo es que lo leo y me armo un lio :S

El campo strTitulo es el mismo en las tres tablas?
  #4 (permalink)  
Antiguo 31/03/2015, 12:25
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Consejo sobre consulta

Perdón si no se como explicarlo.

No cada strTitulo corresponde a distintos. 1º strTitulo es el titulo del curso, el 2º titulo de la unidad 3º titulo del tema.

Gracias por responder
  #5 (permalink)  
Antiguo 31/03/2015, 13:05
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Respuesta: Consejo sobre consulta

Me imagino que tendrás que hacer una segunda consulta para sacar el strTitulo de la tabla unidad
Código PHP:
SELECT strTitulo FROM Unidad Where Id " . $tema['idUnidad']. " 
Me imagino que se podrá hacer en una sola consulta.... pero para mi se complica
  #6 (permalink)  
Antiguo 31/03/2015, 13:42
Avatar de va4go0balboa  
Fecha de Ingreso: marzo-2015
Ubicación: San Cristobal de las casas....
Mensajes: 32
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Consejo sobre consulta

$queryUnidades = "SELECT * FROM Unidad ";

no seria mejor que la hicieras la consulta aca...???

$queryUnidades = mysql_query("SELECT * FROM Unidad "); creo que seria mejor asi!!!! n,n
__________________
que va arder ni que va arder, si nomas humea n,n!!!!
  #7 (permalink)  
Antiguo 01/04/2015, 08:12
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Consejo sobre consulta

Cita:
Iniciado por Jilti Ver Mensaje
Me imagino que tendrás que hacer una segunda consulta para sacar el strTitulo de la tabla unidad
Código PHP:
SELECT strTitulo FROM Unidad Where Id " . $tema['idUnidad']. " 
Me imagino que se podrá hacer en una sola consulta.... pero para mi se complica
Pero esta consulta, donde la pongo? bajo la primera consulta? y la que esta más abajo la elimino?

Cita:
Iniciado por va4go0balboa Ver Mensaje
$queryUnidades = "SELECT * FROM Unidad ";

no seria mejor que la hicieras la consulta aca...???

$queryUnidades = mysql_query("SELECT * FROM Unidad "); creo que seria mejor asi!!!! n,n
Esto no seria lo mismo que tengo puesto?

Saludos y gracias
  #8 (permalink)  
Antiguo 07/04/2015, 09:28
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Consejo sobre consulta

Nadie me puede dar un poco de luz !!???
  #9 (permalink)  
Antiguo 18/04/2015, 13:22
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Consejo sobre consulta

Cita:
Iniciado por Jilti Ver Mensaje
Me imagino que tendrás que hacer una segunda consulta para sacar el strTitulo de la tabla unidad
Código PHP:
SELECT strTitulo FROM Unidad Where Id " . $tema['idUnidad']. " 
Me imagino que se podrá hacer en una sola consulta.... pero para mi se complica
Sigo con lo mismo, he probado de varias formas incluida esta y nada de nada.

Creo que es más sencillo de lo que es, pero no consigo sacar esta consulta.
  #10 (permalink)  
Antiguo 23/04/2015, 10:34
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Consejo sobre consulta

Yo tampoco termino de entenderte demasiado, pero creo que lo que intentas es hacer una consulta a varias tablas, este seria un ejemplo que se puede acercar a lo que pides:

Código PHP:
$query "SELECT Tema.Id as IdTema, Tema.StrTitulo as TituloTema, Tema.StrContenido as ContenidoTema,
        Tema.StrTitulo as TituloTema, Unidad.StrTitulo as TituloUnidad
    FROM Tema, Unidad, Curso
        WHERE Tema.Id_Unidad=Unidad.Id and Unidad.Id_Curso=Curso.Id and Tema.Id = " 
$_GET['IdTema']" "
He relacionado en la misma select las tres tablas y cogido los campos que me interesan de cada una.


Solo a modo de consejo para la próxima, el nombre de las tablas siempre en plural: Temas, Unidades, Cursos...
  #11 (permalink)  
Antiguo 23/04/2015, 11:54
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años
Puntos: 79
Respuesta: Consejo sobre consulta

también me cuesta entenderte, pero si creo lo que es....

genera una vista de las tres tablas, tendrás que renombrar los nombres de los campos idénticos para diferenciarlos, como ID_tb1, ID_tb2, ID_tbN, etc....

luego consultas la vista y tienes la información sin mas problemas =)

vistas

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #12 (permalink)  
Antiguo 24/04/2015, 10:13
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Consejo sobre consulta

Hola gracias por vuestras respuestas. He conseguido solucionarlo como me dijo Jilti.

Código PHP:
$queryUnidades "SELECT Id, strTitulo FROM Unidad WHERE Id = " $tema['IdUnidad']  ;
        
$unidades mysql_query($queryUnidades) or die('Consulta fallida: ' mysql_error()); 
Con esta consulta ya consigo sacar la unidad en la que estoy.

Muchas gracias, doy el tema como solucionado.

Etiquetas: consejo, mysql, select, tabla
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:40.