Foros del Web » Programando para Internet » PHP »

php para consultar tres tablas de mi DB

Estas en el tema de php para consultar tres tablas de mi DB en el foro de PHP en Foros del Web. Mi problema es: Tengo tres Tablas en la base de datos Tabla "Libros" id titulo autor caract Tabla "Genero" generoid genero id Tabla "Precio" precioid ...
  #1 (permalink)  
Antiguo 13/05/2011, 04:15
 
Fecha de Ingreso: marzo-2007
Mensajes: 36
Antigüedad: 17 años, 1 mes
Puntos: 3
php para consultar tres tablas de mi DB

Mi problema es:

Tengo tres Tablas en la base de datos

Tabla "Libros"
id
titulo
autor
caract

Tabla "Genero"
generoid
genero
id

Tabla "Precio"
precioid
precio
id

Me gustaria mostrar por pagina un libro con todas las caracteristicas de la tabla "Libros" con un simple paginado "next" y "prev".
Mostrar el libro no es un gran problema pero mostrarlo con los siguientes requerimientos (UAHHH):
Si muestro un libro, digamos que del genero ficcion al hacer click en los botones "next" y "prev" estos solo me pueden devolver libros del genero ficcion, sorteados por el valor precio (El boton "next" me devolvera el libro que tiene un mayor precio al que estoy visualizando y el boton "prev" el libro que tiene un menor precio.
Es tecnicamente posible hacer esta consulta a la BD con php.
Como debo escribir la consulata en php?
Muchas gracias desde ya por la ayuda
ana
  #2 (permalink)  
Antiguo 13/05/2011, 06:15
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: php para consultar tres tablas de mi DB

Este es el foro de php no de SQL. Hay mucha información en la web sobre como hacer consultas en SQL.
Dejen de hacer la tarea de los ciclos en el foro por favor.

Es una "cantada" Siempre es el mismo ejercicio xD
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(

Última edición por IEKK; 13/05/2011 a las 06:21
  #3 (permalink)  
Antiguo 13/05/2011, 06:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 36
Antigüedad: 17 años, 1 mes
Puntos: 3
Respuesta: php para consultar tres tablas de mi DB

Gracias IEKK.
Aunque lamentablemente tu respuesta no me ayuda.
La vieja pregunta... El huevo o la gallina? PHP o SQL... Donde hacer la pregunta?
Lo que realmente necesito es una pista de como escribir la funcion en php que resuelva mi problema.
  #4 (permalink)  
Antiguo 13/05/2011, 07:03
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: php para consultar tres tablas de mi DB

Cita:
Iniciado por ana_ramirez Ver Mensaje
Gracias IEKK.
Aunque lamentablemente tu respuesta no me ayuda.
La vieja pregunta... El huevo o la gallina? PHP o SQL... Donde hacer la pregunta?
Lo que realmente necesito es una pista de como escribir la funcion en php que resuelva mi problema.
Pues supongo que partimos que sabes hacer la conexión a la base de datos al menos.
Recuperas los datos según la consulta que quieras.
Hay muchas formas. Espero que al menos te sirva de guía.

Código PHP:
$sql="Select titulos FROM libros"//Tu consulta
$consulta=mysql_query($sql);
if(
mysql_num_rows($consulta)>0)
{
    while(
$result=mysql_fetch_assoc($consulta))
       echo 
$result['titulos']; //Mostraria los campos id de tu tabla

OFFTOPIC:
¿El huevo o la gallina? No hay retórica en esa pregunta. La respuesta la da el evolucionismo.
Antes de que siquieran existiesen las gallinas ya habían huevos. La gallina evolucionó de un animal ovíparo. Cuando esta se la pudo considerar gallina, nació de un huevo, ya que como se ha demostrado las aves evolucionaron de los reptiles. El huevo siempre fue primero.

Lo siento, estoy cansado de esa frase que se cae de obvia por su propio peso.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #5 (permalink)  
Antiguo 13/05/2011, 07:25
 
Fecha de Ingreso: marzo-2007
Mensajes: 36
Antigüedad: 17 años, 1 mes
Puntos: 3
Respuesta: php para consultar tres tablas de mi DB

Gracias IEKK,
Un mejor intento de ayudar

Pue si... al menos se hacer la conexión con la base de datos y tambien se hacer una consulta directa a una de las tablas.
Lo que no se hacer es como unir las tres tablas de las que hable en mi primer post.
Y escribir la funcion en PHP que me devuelva los requerimientos de los cuales inicialmente tambien hable.

Gracias tambien por tu tiempo para explicar la "No retórica en la pregunta del huevo o la gallina"
  #6 (permalink)  
Antiguo 13/05/2011, 08:15
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: php para consultar tres tablas de mi DB

bueno solo debes consultar consultas multitablas...
Segun el ejemplo el sql deberia ser mas o menos asi

Cita:
select * from libros, precio where precio.idprecio=libros.idlibros order by precio.valorprecio;
Salu2 y estuvo buena esa explicacion de la gallina y el huevo no me la sabia jaja...
  #7 (permalink)  
Antiguo 13/05/2011, 08:27
 
Fecha de Ingreso: marzo-2007
Mensajes: 36
Antigüedad: 17 años, 1 mes
Puntos: 3
Respuesta: php para consultar tres tablas de mi DB

Gracias maxpower2008

Siento que nos vamos acercando...
Solo me faltaria la consulata a la tabla "Genero".

Si muestro un libro, digamos que del genero ficcion al hacer click en los botones "next" y "prev" yo quiero estos solo me devuelvan los libros del genero ficcion, sorteados por el valor precio.

Como quedaria entonces la union de las tres tablas y el Sort?


Y si que estuvo buena esa explicacion de la gallina y el huevo.
  #8 (permalink)  
Antiguo 13/05/2011, 08:40
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: php para consultar tres tablas de mi DB

Es lo mismo la union de tres o varias tablas utilizas lo q se llaman las llaves foraneas, consultalas y seguro no tendras mas problemas como estos...

Quedaria mas o menos asi el sql.

Select * from libros,precio, genero where libros.id= precio.idlibro and genero.idgenero=libro.idgenero order by precio. valorprecio

Aunq si es un ejercicio no hay problema pero si es algo mas q estas realizando debes tener en cuenta q un libro puede tener varios generos y te saldria una nueva tabla.
  #9 (permalink)  
Antiguo 13/05/2011, 09:13
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: php para consultar tres tablas de mi DB

Hola Ana antes que nada un saludo, bueno quiero decirte primero que tus tablas estan mal estructuradas.

1. entre la tabla libros y la tabla generos tienes que hacerte la siguiente pregunta?

- Un libro tiene varios generos? o
- Un genero tiene varios libros?

Tú escogiste la primera opcion lo cual esta mal por que un Genero contiene a varios libros. entonces tus tablas serian de la siguiente forma:

* tambien te recomiendo que crees una tabla llamada autores.

GENEROS
id_genero
n_genero

LIBROS
id_libro
id_genero
id_autor
titulo
caract
precio (Precio lo pongo en libro por que el precio es unico para el libro)

AUTORES
id_autor
ape_autor
n_autor
nacionalidad
etc.

y para unir las tablas lo mejor que puedes hacer es usar vistas, para que en tus consultas llames como a una simple tabla. ejemplo:
Código PHP:
DROP VIEW IF EXISTS `trestablas`;
create view trestablas as select g.id_generog.n_generoa.id_autora.ape_autora.n_autora.nacionalidadl.id_librol.titulol.caractl.precio from generos as g inner join libros as l on g.id_genero=l.id_genero inner join autores as a on l.id_autor=a.id_autor 
y para hacer tus consultas lo haces como si se tratara de una sola tabla.


Saludos y espero haberte ayudado.
  #10 (permalink)  
Antiguo 13/05/2011, 10:59
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: php para consultar tres tablas de mi DB

Personalmente estoy de acuerdo con maxpower2008.
No veo la necesidad de unir tablas pudiendo obtener los datos con una subconsulta.

Si sigues con dudas ve al foro de SQL
http://www.forosdelweb.com/f86/

Un saludo
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #11 (permalink)  
Antiguo 13/05/2011, 11:39
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: php para consultar tres tablas de mi DB

Cita:
Iniciado por IEKK Ver Mensaje
Personalmente estoy de acuerdo con maxpower2008.
No veo la necesidad de unir tablas pudiendo obtener los datos con una subconsulta.

Si sigues con dudas ve al foro de SQL
http://www.forosdelweb.com/f86/

Un saludo
El punto que indica @ginitofl es que anita (@ana_ramirez, me tome el atrevimiento de llamarte en diminutivo ajaja >.<) tiene un problema de lógica en la estructuración de sus tablas, si, se puede arreglar fácilmente creando una sentencia sql, pero no es el punto, el punto es enseñar que hay mejores formas de hacer las cosas y así evitar futuros problemas en proyectos mas grandes...

@ana_ramirez yo te recomendaría que siguieras el punto indicado de @ginitofl y evitarte problemas a futuro, implementar una sql no logia solo es emplear un parche temporal a un problema, mas no solucionarlo
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 13/05/2011, 13:06
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: php para consultar tres tablas de mi DB

Desde mi punto de vista no tiene que unir las tablas, yo haría varias tablas, como ana_ramirez hace no, pero no las uniría tampoco.
Me limité a decirle como obtener los datos
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #13 (permalink)  
Antiguo 13/05/2011, 14:31
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: php para consultar tres tablas de mi DB

IEKK lo que tu estas haciendo tambien es unir las tablas en tu consulta, yo prefiero trabajarlo a nivel de vistas y con inner join, asi puedo usarlo en otras partes de la web y evitarme ese tipo de consultas como las que propones.

Saludos.
  #14 (permalink)  
Antiguo 13/05/2011, 14:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 36
Antigüedad: 17 años, 1 mes
Puntos: 3
Respuesta: php para consultar tres tablas de mi DB

Gracias a todos,
Yo no estructure la BD del sitio web, solo tengo que trabajar con ella y buscando una solucion me encontre en este sitio.
Veo que aqui no encontrare la solucion a mi problema y que ninguno ha leído mi primer post.
Gracias por perder su tiempo en mi post y por hacermelo perder a mi.

By the way...
OFFTOPIC:
¿El huevo o la gallina? es un dilema que proviene de la expresión "¿qué fue primero: el huevo o la gallina?", ya que las gallinas ponen huevos y de ellos provienen los pollos. Esta expresión llena de ambigüedad condujo a filósofos antiguos cuestionar el cómo se originó la vida y el universo.
En el habla popular, el referirse a la cuestión "el huevo o la gallina" hace hincapié en la inutilidad de preguntarse quién fue primero, pues esta sentencia es una falacia del tipo "círculo vicioso". Es en esta forma de ver el problema en que yace la naturaleza fundamental de la cuestión, ya que la respuesta literal es un tanto obvia. El dilema, entonces, procura elevarse a cuestiones metafísicas, con un planteamiento metafórico. Para entender mejor dicha representación metafórica, la pregunta se puede reformular de la siguiente manera: "¿Qué vino primero: X que no puede venir sin Y, o Y que no puede venir sin X?".

Buen dia para todos
@nita
  #15 (permalink)  
Antiguo 13/05/2011, 14:54
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: php para consultar tres tablas de mi DB

Hey Ana simplemente hemos tratado de ayudarte, que descortez de tu parte decir que te hicimos perder el tiempo, y vuelvo a decirte que tus tablas estan mal estructuradas. En todo caso hay que leer mas sobre modelamiento de base de datos.

Bye.
  #16 (permalink)  
Antiguo 13/05/2011, 14:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 36
Antigüedad: 17 años, 1 mes
Puntos: 3
Respuesta: php para consultar tres tablas de mi DB

Lo "descortez" es no leer lo que lo que estamos posteando los que necesitamos ayuda.
Yo no estructure las bases de datos y tengo que trabajar con ellas.
De haberlas estructurado yo, habria creado una sola tabla... y todo seria mas simple... no te parece?
  #17 (permalink)  
Antiguo 15/05/2011, 11:36
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: php para consultar tres tablas de mi DB

En primer lugar ana aqui no estamos para hacer tareas de los demas, hemos tratado de ayudarte, si no te has dado cuenta dedicamos alguito de tiempo para poder ayudar a los demas, al igual que mis compañeros te dimos pautas para que puedas hacerlo mas optimo tu proyecto o tarea, y al decir que si tu hubieras hecho la estructura de tu base y lo lo harias con una sola tabla, lamento decirte que no podrias hacerlo, en todo caso insisto a que tomes un curso sobre modelamiento de base de datos o leas al respecto


Saludos.


PD.

si tu no has hecho las tablas, es importante que sugieras el cambio del mismo para un optimo funcionamiento, esa es la labor del Programador o Analista, buscar siempre el optimo funcionamiento del proyecto y/o aplicacion.

Última edición por ginitofl; 15/05/2011 a las 11:40 Razón: P.D.

Etiquetas: consultar, tablas, tres
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 16:36.