Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

duca041

Select dentro do while

Recommended Posts

Galera to com uam dificuldade aqui e nem sei se tem como fazer o que estou opensando, vou postar o código aqui pra você terem uma idéia......

Este primeiro resultado é de uma pesquisa e conforme este resultado queria que fizesse o filtro na segunda tabela....

To fazendo muito errado?

Qual seria a forma correta o $filtro recebe até ai ta certo, ele não faz o select e se conto as linhas ele retorna 0 ou seja, ele não ta fazendo oi segundo select.....

Abração ai aos cobras do IM que nos ajudam....(se tiver algun errinho basico desconsiderar fiz correndo)a Dúvida é no funcionamento mesmo

while ($mostra_tabela=mysql_fetch_array($resultado)){
                     $filtro=$mostra_tabela['nome'];
	             $sql_logo= mysql_query("select * from cad_vendas where nome_ved like '%$filtro%'");
		     $num=mysql_num_rows($sql_logo);
		     $mostra_2=mysql_fetch_array($sql_logo);
                     $sql_logo['nome_ved'];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

falto você inicializar a query

você coloca assim...

while ($mostra_tabela=mysql_fetch_array($resultado)){
                     $filtro=$mostra_tabela['nome'];
                     $sql_logo= mysql_query("select * from cad_vendas where nome_ved like '%$filtro%'");
                     $num=mysql_num_rows($sql_logo);
                     $mostra_2=mysql_fetch_array($sql_logo);
                     $sql_logo['nome_ved'];
}

fassa assim...

 

$mostra_tabela = mysql_fetch_array($resultado)

if($mostra_tabela){
$filtro=$mostra_tabela['nome'];

$sql_logo= mysql_query("select * from cad_vendas where nome_ved like '%$filtro%'");

mysql_query($sql_logo); //era isso que faltava...

$num = mysql_num_rows($sql_logo);

mysql_query($num); //aqui tbm...

$mostra_2 = mysql_fetch_array($sql_logo);

mysql_query($mostra_2); //tbm faltava...

$mostra_2['nome_ved'];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bha galera valeu a tentativa mas não rolo o problema é que ele não entra no select não sei pr ele não faz o where pela variavel filtro ja mostrei ela na tela tudo ela ta recebendo mas não faz o select...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tenta ver o que te retorna na tela. Daí tente executar direto no seu programa tipo MySQL Front.

 

print $sSQL = "select * from cad_vendas where nome_ved like '%$filtro%'";

$sql_logo= mysql_query($sSQL);

 

Veja assim:

 

print $sSQL = "select * from cad_vendas where nome_ved like '%'.$filtro.'%'";

$sql_logo= mysql_query($sSQL);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu brodher mas tb não rolou só retornou o sql como etxto piro bha ta loko ta f*** esse script....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom amigo. Não entendi bem sua dúvida, acho que se você explicar um pouco melhor eu posso te ajudar com uma solução mais eficiente.

Se entendi bem, tenho quase certeza que você pode fazer isso com apenas uma query usando LEFT JOIN.

 

Passe o SQL utilizado anteriormente. De onde você tira o $filtro

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu brodher mas tb não rolou só retornou o sql como texto(...)

É exatamente isso que eu queria que você visualizasse.

Agora execute o script SQL gerado num programa como o MySQL Front. Então você verá que não terá nenhum dado na tabela que corresponde à sua condição de WHERE.

 

Poste para nós o SQL gerado na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$pesq="select * from cadastro where modelo like '%$modelo%' order by modelo";

$result=mysql_query($pesq);

$num_linhas=$result;

$limite="$pesq LIMIT $inicio,$quantidade"; *** utilizado para a apaginação

$resultado=mysql_query($limite);

while ($mostra_tabela=mysql_fetch_array($resultado)){

 

Bom amigo. Não entendi bem sua dúvida, acho que se você explicar um pouco melhor eu posso te ajudar com uma solução mais eficiente.

Se entendi bem, tenho quase certeza que você pode fazer isso com apenas uma query usando LEFT JOIN.

 

Passe o SQL utilizado anteriormente. De onde você tira o $filtro

 

Até mais.

 

 

Cara coloquei o código anterior ve se tu consegue me entender agora...

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

$pesq="select * from cadastro where modelo like '%$modelo%' order by modelo";

$result=mysql_query($pesq);

$num_linhas=$result;

$limite="$pesq LIMIT $inicio,$quantidade"; *** utilizado para a apaginação

$resultado=mysql_query($limite);

while ($mostra_tabela=mysql_fetch_array($resultado)){

 

 

Bom amigo. Não entendi bem sua dúvida, acho que se você explicar um pouco melhor eu posso te ajudar com uma solução mais eficiente.

Se entendi bem, tenho quase certeza que você pode fazer isso com apenas uma query usando LEFT JOIN.

 

Passe o SQL utilizado anteriormente. De onde você tira o $filtro

 

Até mais.

 

 

Cara coloquei o código anterior ve se tu consegue me entender agora...

Abraço

 

Cara, não ta rolando por causa das aspas simples:

$pesq="select * from cadastro where modelo like '%$modelo%' order by modelo";

 

Faça assim e ve se rola:

$pesq="select * from cadastro where modelo like '%'".$modelo."'%' order by modelo";

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara esta parte esta funcionando não funciona o select dentro do while que eu pega e faço a busca dentro de outra tabela....

Mas mesmo assim valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que tem que ser utilizando o join como foi dito acima mas não estou sabendo cmo utilizar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos envie sua estrutura SQL e explique quais colunas você quer relacionar. Visualmente facilita o entendimento.

 

Sobre o left join, sua sintaxe é simples e esse site explica muito bem: http://www.luis.blog.br/left-join-e-inner-join-juncao-em-consultas-sql.aspx

Mas lendo melhor sua dúvida, não acho que com LEFT JOIN dê para resolver. Vai depender de como estão estruturadas suas tabelas.

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faço a busca filtrando por um campo em uma tabela cadastro.....

pego os valores e mostro mas quando eu for mostrar o nome do vendedor quero mostrar sua foto, que esta na tabela vendedores...

é dae que saí o filtro... ex:

 

valor vendedor foto

1 pedro X Aqui o problema..... o valor busco na mesma tabela que o nome do vendedor, mas a foto quero buscar na tabela cadastro do vendedor, fazendo o filtro pelo seu nome...é uma consulta dentro da outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = '
SELECT
	`vendedores`.`nome`,
	`fotos`.`img`
FROM
	`vendedores`
LEFT JOIN `fotos` ON
	`vendedores`.`id` = `fotos`.`vendedor`
WHERE
	`nome` LIKE \'%pedro%\'
';

Faça em uma página separada, utilizando somente esta consulta, e adapte à suas necessidades.

 

Apenas conecte, utilize o mysql_query, depois mysql_fetch_assoc, e dê um print_r. Verifique se é isso que você precisa.

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada feito.. Acho que não tenho o conhecimento nescessario para fazer essa consulta...

mas vou continuar tentando em cima dela na minha idéia seria a coisa mais simples fazer um select dentro de um outro selwct mostrando resultados mas vamos lá tem que ter uma maneira,...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vo colocar o Código na integra..... olha só meu brodher cara falta poouco para terminar essa PG bem dizer só isso....

 

$pesq="select * from cadastro where modelo like '%$modelo%' order by modelo";

$result=mysql_query($pesq);

$limite="$pesq LIMIT $inicio,$quantidade";

$resultado=mysql_query($limite);

$total=mysql_num_rows($result);

$paginas = ceil($total/$quantidade);

$links =15;

$num_linhas=$result;

 

if ($num_linhas!=0){ aqui vai o cabeçalho da tabela

.

.

.

.

.

.

}

while ($mostra_tabela=mysql_fetch_array($resultado)){aqui vai os resultados que estou mostrando......

 

dentro de uma celula da tabela que quero que apareça a foto do vendedor ta assim.....

echo"<td bgcolor=\"#FFFFFF\">";

echo $mostra_tabela['nome'];

$filtro=$mostra_tabela['nome']; \\até aqui funciona tudo mas ele nào faz o select na outra tabela....

 

$sql_logo= mysql_query("select * from cad_revenda where nome_rev = '$filtro'");

$num=mysql_num_rows($sql_logo);

$mostra_2=mysql_fetch_array($sql_logo);

echo"$num";

$f_logo=$mostra_2['logo'];

echo $f_logo;

echo $filtro;

echo "<img src=\"$f_logo\"height=\"40\" width=\"70\">";

echo"</td>";

 

Preciso de uma ajuda ai galera dos fera....

por favor....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.