Jump to content
Fórum Script Brasil
  • 0

while dentro de while


Daniel Correia

Question

olá tenho um while onde mostra todos os resultados de um tabela, e dentro desse while tenho outro while que mostra todos os resutados de outra tabela ex:

while($dados_tb1 = mysql_fetch_assoc($result_tb1)){

?>

<div id="tb1">

<?php echo $dados_tb1['nome']; ?>

</div>

<?

ai dentro do while eu tenho esse outo while:

<?php

while($dados_tb2 = mysql_fetch_assoc($result_tb2)){

?>

<div id=teste" style="border: solid 1px black; width: 150px; margin-left: 100px;">

<?php echo $dados_tb2['mensagens]; ?>

</div>

<?

}

?>

}

o resultado de mensagens só está aparecendo para o primeiro resultado do primeiro while ex:

resultado do primeiro while:

joao

mesagem

mesagem

mesagem

maria

jose

pedro

eu queria que aparecessem mesagem para todos não só para o joão, como resolvo ?

Obrigado!!!

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Bom dia, Daniel!

É claro que estou com dificuldades em te aconselhar pois você só apresentou os fetch e não a consulta em si.

Exceto sua consulta estiver com algum problema de lógica, não deveria ter esta dificuldade.

Normalmente faço uso de diversos whiles, sendo que alguns deles bastante amplos.

Passe a consulta origem para que possamos verificar melhor.

Abraços

Link to comment
Share on other sites

  • 0
a primeira consulta do primeiro while é essa:

$sql = "SELECT nome FROM tb_cadastro";

o segundo while:

$sql1 = "SELECT mensagens FROM tb_mensagens";

como eu falei as mensagens só aparecem para o primeiro resultado do primeiro while.

joao

mesagem

mesagem

mesagem

maria

jose

pedro

como resolvo?

o seu select de mensagens deve ter vinculo com o cliente, para em cada laco dentro de cada cliente ele pegue apenas as mensagens do cliente especifico.

Atualmente você esta pegando todos os clientes e todas as mensagens de todos os clientes, é como se os ultimos clientes não tivessem mensagens.

Coloque uma fk na tabela mensagem que vincule com o cliente. Ai você faz:

SELECT mensagem FROM mensagens WHERE id_cliente = $idCliente;

onde o $idCliente vem do primeiro select.

Resumindo:

SELECT * FROM CLIENTE;

while($cliente = fetch_array){

echo $cliente['nome']

SELECT mensagem FROM mensagens WHERE id_cliente = $cliente['id_cliente'];

while($mensagem = fetch_array){

echo $mensagem['mensagem'];

}

}

abraço.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...