Ir para conteúdo

POWERED BY:

Arquivado

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

Winicius Walter

problema com while acredito eu

Recommended Posts

aqui esta o codigo ...

   $sql1 = ("SELECT cadastro.*
             FROM cadastro 
             INNER JOIN solicitacoes AS sol ON sol.cod_cad = cadastro.cod_cad");
 
       $result1 = mysql_query($sql1);
 
while($lista1 = mysql_fetch_array($result1)){
 
$sql2 = "SELECT serv.*, sol.cod_serv
        FROM servicos AS serv
             INNER JOIN solicitacoes AS sol ON sol.cod_serv = serv.cod_serv";
 
       $result2 = mysql_query($sql2);
 
while($lista2 = mysql_fetch_array($result2)){
    
$sql3 = "SELECT solicitacoes.*, situacao.desc_sit
FROM solicitacoes
INNER JOIN situacao ON situacao.cod_sit = solicitacoes.cod_sit";
 
$result3 = mysql_query($sql3);
 
while($lista3 = mysql_fetch_array($result3)){
    $data = substr($lista1['data_cad'], 0, 10);
    $hora = substr($lista1['hora_cad'], 11,5);
    $data = formatData($data);
 
echo "<tr>
<td align='center'>" . $lista1['cod_cad'] . "</td>
<td align='center'>" . $lista1['nome_cad'] . "</td>
<td align='center'>" . $lista2['desc_serv']. "</td>
<td align='center'>" . $data ."</td>
<td align='center'>" . $lista1['hora_cad']."</td>
            <td align='center'>" . $lista1['assunto_cad'] . "</td>
<td align='center'>" . $lista1['desc_cad'] . "</td>
<td align='center'>" . $lista2['prazo_serv'] . " dias</td>
<td align='center'>" . $lista3['desc_sit']."</td> 
 
 
 </tr>";
 
     }
  }
}
echo "</table>";
 
o erro ocorre que aparece assim
ele repete 9 veses o DESC_SIT porem nao intendi o pq sendo que as SQL buscam certo as informações no banco...
Desde jah Agradeço
Att Winicius Walter

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, muito estranho vc fazer whiles encaixados assim.

 

Vc não consegue fazer JOIN dessas tabelas ? e ai executar em uma só query ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser por isso ? Oo

 

pq antes do meu código ficar desse jeito ele estava com a querry tudo em uma sql só e ele tava com um erros nos inner join ... e tambem eu nao intendo muito porém eu sei e intendo o basico da syntaxe :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim cara, é por isso. (whiles encaixados que não respeitam os dados)

 

Faça em uma só query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

juntei elas e ficou assim

 

SELECT cadastro.*, serv.*, solicitacoes.*
 
FROM cadastro, servicos AS serv, solicitacoes AS sol
 
INNER JOIN solicitacoes ON sol.cod_cad = cadastro.cod_cad
INNER JOIN servicos ON sol.cod_serv = serv.cod_serv
INNER JOIN situacao ON situacao.cod_sit = solicitacoes.cod_sit

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você está usando JOIN, você tem que tirar as tabelas que estão no JOIN ali do FROM:

SELECT cadastro.*, serv.*, solicitacoes.*

FROM cadastro
 
INNER JOIN solicitacoes AS sol ON sol.cod_cad = cadastro.cod_cad
INNER JOIN servicos AS serv ON sol.cod_serv = serv.cod_serv
INNER JOIN situacao ON situacao.cod_sit = solicitacoes.cod_sit
Observe que o alias das tabelas foram incluídos no INNER JOIN...

 

:joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa valeu Paulo consegui aqui ... soh fiquei ainda com uma duvida...

 

a sql ficou assim

 

 

SELECT cadastro. * , servicos. * , solicitacoes. * 
FROM cadastro
INNER JOIN solicitacoes ON solicitacoes.cod_cad = cadastro.cod_cad
INNER JOIN servicos ON solicitacoes.cod_serv = servicos.cod_serv
INNER JOIN situacao ON solicitacoes.cod_sit = situacao.cod_sit

 

porem onde os campos onde essa clausula faz a consulta ela aparece zerada ...

solicitacoes.cod_sit = situacao.cod_sit

e eh a unica que aparece assim ;/ o que pode ser ? Oo

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguem pode da uma força aew ... ainda to com um probleminha ...a informação contida no

INNER JOIN situacao ON situacao.cod_sit = solicitacoes.cod_sit

nao ta puxando como deveria .... eh o unico campo da consulta que aparece zerada alguem pode me dizer pq ? a SQL ta assim

 

SELECT cadastro . * , servicos . * , solicitacoes . * 
FROM cadastro
INNER JOIN solicitacoes ON solicitacoes.cod_cad = cadastro.cod_cad
INNER JOIN servicos ON solicitacoes.cod_serv = servicos.cod_serv
INNER JOIN situacao ON situacao.cod_sit = solicitacoes.cod_sit

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara se não esta retornando os dados que estão na tabela e por que não tem referencia, por que o join prescisa de um id para se relacionar. mas agora o que deve esta acontecendo é que no id de referencia não tem nada esta null. ai relmente ele não vai retornar.

 

se for isso vai ter um pouco de dificuldade mais vai conseguir.

 

no caso em minhas tabelas sempre deixo um registro como default.

 

ex:

 

tb_funcionario

tb_cargo

id =1 nome=sem cargo.

 

 

caso eu não, selecione nenhum cargo ele coloca o id = 1.

 

não é que sua consulta esteja errada mais a estrutura que foi feita inicialmente, tem alguns detalhes que estão faltando, que não foi pensado.

 

deu para entender? :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu sim valeu... vou tentando aqui ... agradeço a todos esclareceram todas minhas duvidas então marco o topico como resolvido :)

 

OBRIGADO A TODOS

se ajudou clica ai > rep_up.png :)

 

 

cara eu dei um ponto para você só por causa dessa palavra.

 

 

 

vou tentando aqui

 

se todos que vem pedir ajuda aqui no fórum, quisessem apenas ajuda para resolver o problema, e não que faça o seu trabalho seria muito bom!

 

continue assim não queira as coisas mastigadinhas, corra atrás por que so assim aprende realmente.

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.