Ir al contenido


Foto

Problema de planteamiento


  • Por favor identifícate para responder
10 respuestas en este tema

#1 lagares66

lagares66

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 17 mayo 2012 - 01:08

Os comento mi problema, ya que creo que soy incapaz y la cabeza me va a explotar.

Tengo 3 Tablas


Users
id
nombre

Archivo
id_archivo
archivo
id_user
id_cat

Categorias
cat_id
categoria

Realizo la búsqueda relacionada

$consulta = "SELECT * FROM Users
JOIN panel ON Users.id = id_user
JOIN cat ON id_cat=cat_id
WHERE Users.id='$codigo'";

y supuesta mente desde esta consulta puedo conseguir todos los datos y asi es pero no se como estructurar como quiero

ejemplo de lo que quiero

Categoria Animales

Libro uno libro dos libro 3 ect...


parece muy fácil pero no tengo manera y creo que no me lo estoy planteando nada bien alguna ayudita.

gracias
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 17 mayo 2012 - 01:18

Hola lagares66

No repitas hilos, con uno es suficiente. He borrado el otro hilo.

Saludos
  • 0

#3 lagares66

lagares66

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 17 mayo 2012 - 01:21

Gracias por borrarlo, a sido un fallo es que pensé que no se había publicado lo siento y gracias de nuevo.

  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 17 mayo 2012 - 01:36

Gracias por borrarlo, a sido un fallo es que pensé que no se había publicado lo siento y gracias de nuevo.


No hay problema, espero que alguien te ayude con tu problema pronto.

Saludos
  • 0

#5 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 17 mayo 2012 - 02:19

Buenas tardes amigo lagares66...

No sé si es el sueño o el calor que hace pero no he entendido muy bien tu planteamiento...  ^o|

Comprendo lo de que tienes tres tablas y veo tu consulta (a primera vista no le encuentro nada erróneo) pero no comprendo los datos que necesitas ni como deseas visualizarlos, sería un poco más sencillo que nos mostraras un ejemplo "llenando" en tus tablas registros ficticios y lo que al final esperas observar con tu consulta (claro, usando esos datos ficticios)...

Creo que sería más sencillo...

:embarrassed:

Saludox ! :)
  • 0

#6 lagares66

lagares66

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 17 mayo 2012 - 02:25

Hola Fenareth

si se que la consulta es correcta
pero para  visualizar los resultados quiero hacer esto

echo categoria
echo archivo


y el resultado de impresión seria así


(categoria) Mamifero

(Archivo)  delfin pez jirafa mono ect




y lo que yo consigo es esto

Mamífero delfín  Mamífero pez  mamífero jirafa


Me e explicado??





  • 0

#7 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 17 mayo 2012 - 04:44

$consulta = "SELECT u.id_user, u.username, u.realname, c.id_cat, c.cat_noimbre, p.???, p.??? FROM Users u
JOIN panel p ON u.id = id_user
JOIN cat c ON c.id_ca t= u.cat_id
WHERE u.id='$codigo'";

$query = mysql_query($consulta);

while ($row = mysql_fetch_assoc($query) {
  echo '(' . $row['cat_name'] .'] ' . $row['username'];
}


Espero con eso te de una pista.

Saludos.
  • 0

#8 lagares66

lagares66

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 18 mayo 2012 - 01:54

Con esta solución el resultado es este

mamífero perro  mamífero ballena  reptil serpiente


y yo lo que estoy buscando es

mamífero
perro
ballena

Reptil
Serpiente


Pero igualmente muchas gracias por vuestro interés y por contestar

  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 mayo 2012 - 06:34

Hola, lo que tienes que hacer es hacer un group by en la consulta por categorías, pero de todos modos deberás hacer dos consultas, la primera es que traigas todas las categorías y dentro del while hacer otra con lo demás con el where obteniendo el id de la categoría, algo como:


while ($row = mysql_fetch_assoc($query) {
  echo '(' . $row['cat_name'] .') <br /> ';
 
  $consulta2 = "SELECT u.id_user, u.username, u.realname, p.???, p.??? FROM Users u
  JOIN panel p ON u.id = id_user
  WHERE u.id='$codigo' and u.id_cat = '$row['cat_id']'";
 
  $query2 = mysql_query($consulta2);
  while ($row1 = mysql_fetch_assoc($query2) {
    echo $row1['username'] . '<br />';
  }
}


Saludos.
  • 0

#10 lagares66

lagares66

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 18 mayo 2012 - 01:45

Sigo en la misma situación con esa solucion

se imprime asi

Mamífero
mono
Mamífero
cabra
reptil
serpiente

he utilizado las dos consultas
y he intentdo en una de ellas esto
$consulta = "SELECT distinct categoria FROM Users
JOIN panel ON Users.id = id_user
JOIN cat ON id_cat=cat_id
WHERE Users.id='$codigo'";
y lo que me hace es solo imprimir una por categoría.

no se como hacerlo ya no se que es lo que hago mal



  • 0

#11 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 19 mayo 2012 - 11:30

Mira cómo lo hice:

<?php

$con = mysql_connect("localhost","root","");
mysql_select_db("test");

$cats = "SELECT * FROM categoria";

$query1 = mysql_query($cats);

while ($row1 = mysql_fetch_assoc($query1)) {
echo '(<strong> ' . $row1["cat_name"] . '</strong> )<br />';

$animales = "SELECT * FROM animales WHERE cat_id = " . $row1['cat_id'] . " ORDER BY an_name";
$query2 = mysql_query($animales);

while ($row2 = mysql_fetch_assoc($query2)) {
echo $row2["an_name"] . '<br />';
}
}

?>


El resulto te lo anexo en una imagen más abajo.

Saludos.

Archivos adjuntos


  • 0




IP.Board spam blocked by CleanTalk.