Jump to content


Photo

While Dentro De While


  • Faça o login para participar
13 replies to this topic

#1 RobsonGutierrez

RobsonGutierrez

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 22/07/2006, 11:52

Olá Galera...

Estou aqui quebrando a cabeça :wacko:

Já fiz uma busca aqui no fórum e encontrei algo sobre minha dúvida mas mesmo assim nao consegui adaptar no meu script...

SEGUINTE:

Tenho 2 tabelas em MySql, a primeira é 'fotos_album' e a segunda é 'cad_album' blz... preciso fazer uma busca e encontrar os valores das 'ids' e depois consultar na tabela cad_album quais são os cadastros com as ids encontradas...

eu fiz assim mas ele retorna apenas 1 valor e eu quero q ele retorne todos:

$busca = "SELECT * FROM `fotos_album` WHERE `id_fotop` LIKE '%$foto%'";
$procura = mysql_query($busca);
$linha= mysql_num_rows($procura);

if($linha!=0){
echo "<p align='center'><font size='3' face='Arial, Helvetica, sans-serif'><strong>ESTA
FOTO TAMBÉM ENCONTRA-SE NO ÁLBUM DE FOTOS DE:</strong></font></p>";

while($mostrar=mysql_fetch_array($procura)){

$id_album = $mostrar['id_album'];


$busca = "SELECT * FROM `cad_album` WHERE id_album='$id_album' ";
$procura = mysql_query($busca);

while($mostrar=mysql_fetch_array($procura)){

$id_album = $mostrar ['id_album'];
$nome_album = $mostrar ['nome_album'];
$nome_do_album = $mostrar ['nome_do_album'];

echo " <li><strong><font size='2' face='Arial, Helvetica, sans-serif'><a href='exibir_album.php?id_album=$id_album'>$nome_album</a></font></strong><font size='2' face='Arial, Helvetica, sans-serif'>
- "<a href='exibir_album.php?id_album=$id_album'><em>$nome_do_album</em></a>"</p> </font>";}}
}else{echo"";}


Espero q tenham entendido..

Agradeço desde já...

#2 palhadecoco

palhadecoco

    12 Horas

  • Usuários
  • 206 posts
  • Sexo:Não informado
  • Localidade:Itacaré - Bahia
  • Interesses:Ajuda e Ajudar

Posted 22/07/2006, 12:32

Tá um pouso complicado para eu entender, mas vamos lá vou tentar entender, vou fazer um esquema
para vê se serve para vc...
$sql=mysql_query("SELECT *FROM fotos_album, cad_album WHERE fotos_album LIKE '%$foto%' AND 

fotos_album.id=cad_album.id");

bom ai é o seguinte vc faz uma busca de fotos_album onde as ids de fotos_album e cad_album são idênticas, eu entendir mais ou menos isso.

Edição feita por: palhadecoco, 22/07/2006, 12:36.


#3 RobsonGutierrez

RobsonGutierrez

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 22/07/2006, 13:20

Ok vou explicar melhor :blink:

Por exemplo... eu faço a primeira busca na tabela album_fotos que seria essa...

SELECT * FROM `fotos_album` WHERE `id_fotop` LIKE '%$foto%


Daí por exemplo... nessa consulta eu obtive as ids 10, 22, 29 certo? mediante essas id eu quero fazer uma outra consulta na tabela cad_album pra saber qual o 'nome_album' que possua as ids...

SELECT * FROM `cad_album` WHERE id_album='$id_album'


gostaria q mostrasse assim:

10 - Fulano
22 - Ciclano
29 - Beltrano


Vlwww

#4 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 22/07/2006, 14:04

Acho que o que tu quer é o seguinte:

SELECT * FROM 'cad_album' WHERE id_album = 'SELECT * FROM `fotos_album` WHERE `id_fotop` LIKE '%$foto%'

Não testei, mas se entendi direito é isso que precisa.

[]'s

#5 RobsonGutierrez

RobsonGutierrez

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 22/07/2006, 14:22

A lógica é essa mesmo... só q dessa maneira ele vai encontrar apenas um registro também por q nao segunda busca ele nao efetua um while pra ver quantas ids tem... :(

Vlw pela dica... uma hora eu consigo rsrs

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 22/07/2006, 16:59

Se tu puder postar a estrutura de ambas tabelas, ficará mais fácil pra gente montar a consulta correta. Já adiantando, pode desistir de while dentro de while, rs... isso rola mas num é bom não, he he. É possível fazer o que tu quer em apenas um consulta. Com a estrutura das tabelas ficará mais fácil. ;)

[]’s :DAté mais

#7 RobsonGutierrez

RobsonGutierrez

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 23/07/2006, 03:21

ok... aí vai...

Tabela1

cad_album

id_album
nome_album
nome_do_album
senha_album
email_album
nasc_dia_album
nasc_mes_album
nasc_ano_album
sexo_album
telefone_album
data_cadastro

Essa tabela é um pequeno cadastro que o usuario tem q fazer...


---------------


Tabela2

fotos_album

id_album
id_fotop
id_fotog
evento_foto_album
data_foto_album

Essa é a tabela que possui as fotos com as ids dos usuarios da tabela1

Dai tenho que 1º fazer a busca na tabela2 por exemplo... imagine q eu queira saber qual a id_album q possui a id_fotop "1010"... pra isso eu posso fazer um SELECT e pronto... e vamos supor q eu encontrei as id_album 10, 20 e 30.. até aí blz...

Dai vem o pepino... rsrs

tenho que saber quem sao os usuários com as id_album 10, 20 e 30 da tabela cad_album encontrados na tabela fotos_album e listá-los assim

10 - Fulano
20 - Ciclano
30 - Beltrano..

Agora acho q fui claro.... qualquer coisa posta ae...

Vlw pela força..

#8 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 23/07/2006, 13:52

Opa ... ;)

He He He, confesso que fiquei confuso agora. :P

Mas veja se isso faz o que você quer (execute esta consulta numa interface MySQL, como o phpMyAdmin, por exemplo):

SELECT f.*, c.*
FROM `fotos_album` AS f
INNER JOIN `cad_album` AS c ON (c.id_album = f.id_album)
WHERE f.id_fotop LIKE '%qualquer_valor%'
Se não for isso, nós damos um jeito, he he. :D

[]’s :DAté mais

#9 RobsonGutierrez

RobsonGutierrez

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 24/07/2006, 17:54

Aeeeeeeeeee.... :D :D

Deu certo... é isso mesmo q eu queria...

Vlw mesmo... Pena que num entendi muito bem o que vc fez!!!! mas o q importa é que ta funcionando..

Brigadão.. (y) (y) (y)

Fuiiiiiiii

#10 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/07/2006, 17:56

Aeeeeeeeeee.... :D :D

Deu certo... é isso mesmo q eu queria...

Vlw mesmo... Pena que num entendi muito bem o que vc fez!!!! mas o q importa é que ta funcionando..

Brigadão.. (y) (y) (y)

Fuiiiiiiii

Opa ... ;)

Valeu pela resposta, he he, é sinal que meus estudos de MySQL estão funcionando, he he, estou aprendendo ! :P

Para entender o que fiz, dê uma lida aqui: 6.4.1.1. Sintaxe JOIN ;)

[]’s :DAté mais

#11 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 24/07/2006, 20:42

Pois é Paulo ... falou uma coisa ali que me chamou a atenção ...

tipo "WHILE dentro de WHILE ... rola mas pode ser um problema ..." .... algo assim ...

enfim ...

Qual seria este Problema ou Problemas ... ?

Vai depender da consulta para esse(s) problema(s) ou o problema é com a eficiência da query no quesito velocidade etc ... ???

;) Até mais

#12 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/07/2006, 20:51

Pois é Paulo ... falou uma coisa ali que me chamou a atenção ...

tipo "WHILE dentro de WHILE ... rola mas pode ser um problema ..." .... algo assim ...

enfim ...

Qual seria este Problema ou Problemas ... ?

Vai depender da consulta para esse(s) problema(s) ou o problema é com a eficiência da query no quesito velocidade etc ... ???

;)

O problema é exatamente este, he he, a velocidade não só da consulta como do próprio script, pois aí estavam sendo executadas 2 consultas. ;)

[]’s :DAté mais

#13 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 24/07/2006, 23:34

pode crer ... era o que eu pensava mesmo mas achei que podia ter mais algum tipo de problema ...

(y) Até mais

#14 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 25/07/2006, 08:52

Eu nunca tinha feito SELECT de SELECT. Queria saber se a que eu tentei ajudar pelo menos resolveu parte do problema.

[]'s




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq