misterviralata Postado Fevereiro 23, 2007 Denunciar Share Postado Fevereiro 23, 2007 Ola Amigos!Apouco pedi ajuda para descobrir como selecionar duas tabelas em uma mesma queryo Beraldo me ajudou$sql = "Select * From tabela1 UNION Select * From tabela2 order by descricao ASC";na tabela1 tenhoid descricao1 adriana2 marcosna tebela2 tenhoid descricao1 bete2 adrianacom o script que o beraldo passou da pra tazer o resultado das duas tabelas$sql = "Select * From tabela1 UNION Select * From tabela2 order by descricao ASC";$resu = mysql_query ($sql); while ($fila=mysql_fetch_row($resu)){ echo " $fila[0] $fila[1]<br>"; } e imprime assim:1 adriana2 adriana1 bete2 marcosperfeito funcionou muito bem!Minha pergunta é como faço para não deixar repetir o nome, aparecer assim:1 adriana1 bete2 marcosObrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 victorhb Postado Fevereiro 23, 2007 Denunciar Share Postado Fevereiro 23, 2007 SELECT DISTINCT FROM [..] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Fevereiro 23, 2007 Autor Denunciar Share Postado Fevereiro 23, 2007 Desculpe minha ignorancia victorhb, mas não consegui fazer funcionaré assim?$sql = "Select DISTINCT From tabela1 UNION Select DISTINCT From tabela2 order by descricao ASC"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Fevereiro 23, 2007 Denunciar Share Postado Fevereiro 23, 2007 A sintaxe SQL está correta, mas creio que você não conseguirá fazer com que esses registros não se repitam pois estão em tabelas diferentes..O que você pode fazer é colocar todo o resultado do select em um array e apagar os repetidos usando array_unique()http://br.php.net/manual/pt_BR/function.array-unique.php[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Fevereiro 23, 2007 Autor Denunciar Share Postado Fevereiro 23, 2007 :o cara to tentanto faz umas 3 horas e não to conseguindo colocar colocar o resultado dentro de array, já li e reli o manual do php e não entendi! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Fevereiro 23, 2007 Denunciar Share Postado Fevereiro 23, 2007 DÊ uma olhada neste exemplo:<?php $nomes = array(); $sNome = "Adriana Bete Beraldo Maria João Adriana Beraldo João José Beraldo Bete"; $ex = explode (" ", $sNome); for ($z = 0; $z < count ($ex); $z++) { $nomes[$z] = $ex[$z]; } echo "<pre>"; print_r ($nomes); echo "</pre>"; $nomes_unique = array_unique ($nomes); echo "<pre>"; print_r ($nomes_unique); echo "</pre>"; ?>:D[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Fevereiro 23, 2007 Autor Denunciar Share Postado Fevereiro 23, 2007 Beraldo desculpe, mas eu também consegui fazer de acordo com o ex que você passou no link http://br.php.net/manual/pt_BR/function.array-unique.phpMas eu me expressando malcomo faço para tira Array( [0] => Adriana [1] => Bete [2] => Beraldo [3] => Maria [4] => João [8] => José)e ficar só Adriana Bete Beraldo Maria João José Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Fevereiro 23, 2007 Denunciar Share Postado Fevereiro 23, 2007 como faço para tira Array( [0] => Adriana [1] => Bete [2] => Beraldo [3] => Maria [4] => João [8] => José)e ficar só Adriana Bete Beraldo Maria João JoséEsta linha faz isso:$nomes_unique = array_unique ($nomes);;)[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Fevereiro 23, 2007 Autor Denunciar Share Postado Fevereiro 23, 2007 ué pensei que o print_r que fazia aparecer o Array ( [0] => ), a linha está com os valores certo?$nomes_unique = array_unique ($nomes);tentei imprimir o resultado usando echo e não funciona porque?echo"$nomes_unique";e como imprimo sem o danado do ( [0] => )Desculpe estar perguntando tanto assim é que estou curioso para saber! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Fevereiro 23, 2007 Denunciar Share Postado Fevereiro 23, 2007 Ah, pensei que você queria saber qual função estava retirando os valores repetidos... :)A função que apresenta a array daquela forma é realmente a print_r(). Se vocÊ der um echo em um array (echo $array), será apresentado Array. Coicidentemente isso equivaleria a:echo gettype ($array);//desde que $array seja um arrayUso a tag <pre> para que sejam interpretados os espaços gerado pela função print_r().[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Fevereiro 23, 2007 Autor Denunciar Share Postado Fevereiro 23, 2007 :( To ficando desesperado continuo não entendendose colocar assim<?php$nomes = array();$sNome = "Adriana Bete Beraldo Maria João Adriana Beraldo João José Beraldo Bete";$ex = explode (" ", $sNome);for ($z = 0; $z < count ($ex); $z++){ $nomes[$z] = $ex[$z];}$nomes_unique = array_unique ($nomes);echo gettype($nomes_unique);//desde que $array seja um array?>ainda vai imprimir assim:arrayPor favor mostra um exemplo pra mim de como imprimir assim:e ficar só AdrianaBeteBeraldoMariaJoãoJosé Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Fevereiro 26, 2007 Autor Denunciar Share Postado Fevereiro 26, 2007 BeraldoUm outro amigo de outro forum ajudou e deu certo, ficou assim:<?php$nomes = array();$sNome = "Adriana Bete Beraldo Maria João Adriana Beraldo João José Beraldo Bete";$ex = explode (" ", $sNome);for ($z = 0; $z < count ($ex); $z++){$nomes[$z] = $ex[$z];}$nomes_unique = array_unique ($nomes);echo "<pre>";foreach($nomes_unique as $nomes){echo $nomes . "<br>";} echo "</pre>";?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ikkinet Postado Fevereiro 26, 2007 Denunciar Share Postado Fevereiro 26, 2007 Sei não, não testei, mas acho que isso deve resolver o problema:SELECT * FROM tabela1 UNION SELECT * FROM tabela2 WHERE tabela1.campo1 != tabela2.campo1 ORDER BY descricao ASCAssim, ele seleciona tudo na tabela 2 que seja diferente da tabela 1... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
misterviralata
Ola Amigos!
Apouco pedi ajuda para descobrir como selecionar duas tabelas em uma mesma query
o Beraldo me ajudou
$sql = "Select * From tabela1 UNION Select * From tabela2 order by descricao ASC";
na tabela1 tenho
id descricao
1 adriana
2 marcos
na tebela2 tenho
id descricao
1 bete
2 adriana
com o script que o beraldo passou da pra tazer o resultado das duas tabelas
$sql = "Select * From tabela1 UNION Select * From tabela2 order by descricao ASC";
$resu = mysql_query ($sql);
while ($fila=mysql_fetch_row($resu)){
echo " $fila[0] $fila[1]<br>";
}
e imprime assim:
1 adriana
2 adriana
1 bete
2 marcos
perfeito funcionou muito bem!
Minha pergunta é como faço para não deixar repetir o nome, aparecer assim:
1 adriana
1 bete
2 marcos
Obrigado!
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.