Dois results dentro de um único While é possivel....??
Tipo não sei se estou pensando de forma errada, mas o problema é o seguinte estou desenvolvendo um chat simples em Php, porém travei na parte das mensagens reservadas.
Eu acredito que só possa ser um while dentro de uma tabela, e dentro desse while ele vai apresentar em sincronia tanto as mensagens gerais quanto as mensagens reservadas.
Fiz isso desta forma
SELECT * FROM mensagens ( Select 1 Apresenta tudo )
rs = mysql_query($sql); // aqui faço o result dele
o outro
SELECT * FROM mensagens WHERE a condicão de reservado = 1 setada no banco( Select 2 Apresenta tudo )
rs = mysql_query($sql); // aqui faço o result dele
até aí blz
o problema que no while ($row = mysql_fetch_array($rs)){
se eu colocar a variavel rs ele só chama o último select e se eu der um nome para cada eu não encontrei se consigo chamar os dois results neste while
}
Desde já agradeço aí quem puder tirar essa dúvida ou dar alguma outra solução.
Achei algo assim na documentação do Php só que não estou conseguindo usar, alguém poderia me dizer se é isso mesmo e dar um exemplo
<?php
$q1 = 'some query on a set of tables';
$q2 = 'similar query on a another set of tables';
if ( (($r1=mysql_query($q1)) && ($r2=mysql_query($q2)) ) {
while (($row=mysql_fetch_assoc($r1))||($row=mysql_fetch_assoc($r2))) {
/* do something with $row coming from $r1 and $r2 */
}
}
?>
grato

Dúvida De Results Dentro Do While
Started By Alex Mello, 06/10/2008, 15:47
3 replies to this topic
#1
Posted 06/10/2008, 17:03
#2
Posted 06/10/2008, 17:06
Cara, eu achei muito confuso 
Mas acho que você poderia fazer tudo em uma única query... daí vai ter um única resource. Utilize UNION pra isso:


Mas acho que você poderia fazer tudo em uma única query... daí vai ter um única resource. Utilize UNION pra isso:
SELECT * FROM tabela WHERE familia='tesser' UNION SELECT * FROM tabela WHERE familia = 'pedroso'Serve?


Edição feita por: boirock, 06/10/2008, 17:06.
#3
Posted 06/10/2008, 17:44
Então Boirock valeu pela dica aí cara, mas ja tentei com o UNION, não sei se não soube usar porque tb nunca usei UNION, mas não deu certo.
vou tentar explicar mais simples.
tem uma tabela só para isto, quando alguém clica no campo reservado eu seto o valor 1 para essa conversa caso contrário vai 0 até aí tranquilo.
só que eu acho que preciso de duas querys, uma normal que puxa todo mundo com 0 e 1 e independente de quem está na Session.
e outra só para os reservados = 1 AND nick = '$nick_session' , para só esses caras poderem ver as conversas particulares... eu acho que ficu claro assim.
só que tem que rolar em um laço, eu não sei se com SELECT UNION rola, quando eu fiz ele puxava todo mundo sempre, ou seja, puxava os reservados nas conversas abertas.
Ps. Eu não sei se pode postar o código aí é que as vezes vejo o pessoal do fórum reclamando com quem fica jogando os códigos para a galera resolver em vez de tentar solucionar o problema estudando.
Mas minha dúvida é essa e obrigado aí cara
Abraços
vou tentar explicar mais simples.
tem uma tabela só para isto, quando alguém clica no campo reservado eu seto o valor 1 para essa conversa caso contrário vai 0 até aí tranquilo.
só que eu acho que preciso de duas querys, uma normal que puxa todo mundo com 0 e 1 e independente de quem está na Session.
e outra só para os reservados = 1 AND nick = '$nick_session' , para só esses caras poderem ver as conversas particulares... eu acho que ficu claro assim.
só que tem que rolar em um laço, eu não sei se com SELECT UNION rola, quando eu fiz ele puxava todo mundo sempre, ou seja, puxava os reservados nas conversas abertas.
Ps. Eu não sei se pode postar o código aí é que as vezes vejo o pessoal do fórum reclamando com quem fica jogando os códigos para a galera resolver em vez de tentar solucionar o problema estudando.
Mas minha dúvida é essa e obrigado aí cara
Abraços
#4
Posted 06/10/2008, 17:57
Nesse caso, nem de UNION você precisa... é só trabalhar seu WHERE
e faz com um único SELECT
WHERE reservado = 0 OR (reservado = 1 AND destinatario=$usuario_da_session)
Vai funcionar

WHERE reservado = 0 OR (reservado = 1 AND destinatario=$usuario_da_session)
Vai funcionar
Edição feita por: boirock, 06/10/2008, 17:57.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)