Ir para conteúdo

Arquivado

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

OverMix

While dentro de IF Else

Recommended Posts

Prezados Amigos

Boa Noite

Ando com um pequeno problema ao criar um While dentro de if else.

Segue código abaixo para verificação dos amigos


 

 <?php
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

        include "../config/database/database.php";
                                            
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

                                            
        $buscaFaturasPagas = mysql_query("SELECT COUNT(*) FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        // PEGAMOS O RESULTADO DA CONSULTA QUE DEVE NOS RETORNAR UM INTEIRO (NÚMERO)
                                            
        $contagemFaturasPagas = mysql_fetch_array( $buscaFaturasPagas )
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        
        // SE O RESULTADO DA PESQUISA ACIMA FOR IGUAL A ZERO (0) A MENSAGEM DO IF É APRESENTADA OU SE HOUVEREM REGISTROS A MENSAGEM DO ELSE QUE É APRESENTADA

        if($contagemFaturasPagas== 0){
                                            
        echo "Não existem dados para exibição no momento!";
                                            
                                        
        }else{
                
            //AQUI GOSTARIA DE ADICIONAR UM WHILE ONDE SERIAM APRESENTADOS COM UMA TABELA
                        
            echo"Existe(m) ".mysql_result($buscaFaturasPagas, 0)." registros até o momento";
            
            
        }
                                            
        mysql_close($_conexao);
                                            
                                                                                
?>

 



Até a construção da contagem de registros beleza o mesmo está funcionando como deveria mas dentro do ELSE gostaria de adicionar uma tabela com os dados vindos da consulta SQL, mas todos os meios que fiz aqui o fechamento do While que seria o } está fechando o else e me apresenta o erro que faltou fechar algo.

Teria algum modo de resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se voce quer colocar um while dentro do else do if seria assim no seu codigo:

 

 

<?php
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

        include "../config/database/database.php";
                                            
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

                                            
        $buscaFaturasPagas = mysql_query("SELECT COUNT(*) FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        // PEGAMOS O RESULTADO DA CONSULTA QUE DEVE NOS RETORNAR UM INTEIRO (NÚMERO)
                                            
        $contagemFaturasPagas = mysql_fetch_array( $buscaFaturasPagas )
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        
        // SE O RESULTADO DA PESQUISA ACIMA FOR IGUAL A ZERO (0) A MENSAGEM DO IF É APRESENTADA OU SE HOUVEREM REGISTROS A MENSAGEM DO ELSE QUE É APRESENTADA

        if($contagemFaturasPagas== 0){
                                            
        echo "Não existem dados para exibição no momento!";
                                            
                                        
        }else{
                
            //AQUI GOSTARIA DE ADICIONAR UM WHILE ONDE SERIAM APRESENTADOS COM UMA TABELA
                        
            echo"Existe(m) ".mysql_result($buscaFaturasPagas, 0)." registros até o momento";
            
              $i = 1;
              while($i<10){
                  echo "ola ".$i."<br>";
               }

            
        }
                                            
        mysql_close($_conexao);
                                            
                                                                                
?>

não existe segredo.



ahh só esqueci o $i++

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu pensei em algo do gênero

 

 

<?php
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

        include "../config/database/database.php";
                                            
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

                                            
        $buscaFaturasPagas = mysql_query("SELECT COUNT(*) FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        // PEGAMOS O RESULTADO DA CONSULTA QUE DEVE NOS RETORNAR UM INTEIRO (NÚMERO)
                                            
        $contagemFaturasPagas = mysql_fetch_array( $buscaFaturasPagas )
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        
        // SE O RESULTADO DA PESQUISA ACIMA FOR IGUAL A ZERO (0) A MENSAGEM DO IF É APRESENTADA OU SE HOUVEREM REGISTROS A MENSAGEM DO ELSE QUE É APRESENTADA

        if($contagemFaturasPagas> 0){
        
            echo"Existe(m) ".mysql_result($buscaFaturasPagas, 0)." registros até o momento";
            echo "<br><br>";
            $dadosFaturasPagas = mysql_query("SELECT * FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
            while ($faturasPagasLinha = mysql_fetch_array($dadosFaturasPagas) or die())
            //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
            {
            $nome = $faturasPagasLinha["nome_cliente"];
            $valor = $faturasPagasLinha["valor_fatura"];
                                            
       <div align='center'>
       <table border='0' cellspacing='1' width='600' id='table1'>
       <tr><td>Nome</td><td>Valor</td></tr>
       <tr><td>$nome</td><td>$valor</td></tr>
       <?php
            }
            ?>
       </table>
       </div>
        
                                            
                                        
        }else{
                
             echo "Não existem dados para exibição no momento!";
            
            
        }
                                            
        mysql_close($_conexao);
                                            
                                                                                
?>

 

mas isso retorna o erro

Parse error: syntax error, unexpected T_WHILE

 


Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente while com html é algo confuso... segue o codigo corrigido

 

<?php
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

        include "../config/database/database.php";
                                            
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

                                            
        $buscaFaturasPagas = mysql_query("SELECT COUNT(*) FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        // PEGAMOS O RESULTADO DA CONSULTA QUE DEVE NOS RETORNAR UM INTEIRO (NÚMERO)
                                            
        $contagemFaturasPagas = mysql_fetch_array( $buscaFaturasPagas )
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        
        // SE O RESULTADO DA PESQUISA ACIMA FOR IGUAL A ZERO (0) A MENSAGEM DO IF É APRESENTADA OU SE HOUVEREM REGISTROS A MENSAGEM DO ELSE QUE É APRESENTADA

        if($contagemFaturasPagas> 0){
        
            echo"Existe(m) ".mysql_result($buscaFaturasPagas, 0)." registros até o momento";
            echo "<br><br>";
            $dadosFaturasPagas = mysql_query("SELECT * FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
?>
			<div align='center'>
				<table border='0' cellspacing='1' width='600' id='table1'>
<?php
            while ($faturasPagasLinha = mysql_fetch_array($dadosFaturasPagas) or die())
            //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
            {

				$nome = $faturasPagasLinha["nome_cliente"];
				$valor = $faturasPagasLinha["valor_fatura"];
// tem que fechar o php aqui			
?>
													
				<tr><td>Nome</td><td>Valor</td></tr>
				<tr><td>$nome</td><td>$valor</td></tr>
<?php
            }
?>
			</table>
		   </div>

<?php		   
        }else{
                
             echo "Não existem dados para exibição no momento!";
            
            
        }
                                            
        mysql_close($_conexao);
                                            
                                                                                
?>

Primeiro, voce se confundiu na abertura e fechamento das tags php

segundo a div e a table pelo que eu entendi tem que ficar fora do while senão vao se repitir junto e não é isso que queremos.

 

da uma testada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande FreitasMT Valeu a força agora aparece normalmente as tabelas conforme tava querendo

 

 

<?php
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

        include "../config/database/database.php";
                                            
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

                                            
        $buscaFaturasPagas = mysql_query("SELECT COUNT(*) FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        // PEGAMOS O RESULTADO DA CONSULTA QUE DEVE NOS RETORNAR UM INTEIRO (NÚMERO)
                                            
        $contagemFaturasPagas = mysql_fetch_array( $buscaFaturasPagas )
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        
        // SE O RESULTADO DA PESQUISA ACIMA FOR IGUAL A ZERO (0) A MENSAGEM DO IF É APRESENTADA OU SE HOUVEREM REGISTROS A MENSAGEM DO ELSE QUE É APRESENTADA

        if($contagemFaturasPagas> 0){
        
            echo"Existe(m) ".mysql_result($buscaFaturasPagas, 0)." registros até o momento";
            echo "<br><br>";
            $dadosFaturasPagas = mysql_query("SELECT * FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
?>
            <div align='center'>
                <table border='0' cellspacing='1' width='600' id='table1'>
<?php
            while ($faturasPagasLinha = mysql_fetch_array($dadosFaturasPagas) or die())
            //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
            {

                $nome = $faturasPagasLinha["nome_cliente"];
                $valor = $faturasPagasLinha["valor_fatura"];
                // tem que fechar o php aqui
?>
                                                    
                <tr><td>Nome</td><td>Valor</td></tr>
                <tr><td><?php echo"$nome"?></td><td><?php echo"$valor";?></td></tr>
<?php
            }
?>
            </table>
           </div>

<?php
       
        }else{
                
             echo "Não existem dados para exibição no momento!";
            
            
        }
                                            
        mysql_close($_conexao);
                                            
                                                                                
?>

 

 

Só um detalhe que me deixou cabreiro é que ele não está respeitando o else

 

o script me retorna isso

Existe(m) 0 registros até o momento

 

e não mostra a tabela

 

ao invés disso

 

echo "Não existem dados para exibição no momento!";

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá meu amigo

 

Grande FreitasMT Valeu a força agora aparece normalmente as tabelas conforme tava querendo

 

 

<?php
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

        include "../config/database/database.php";
                                            
        /* #### CONEXÃO COM O BANCO DE DADOS MYSQL #### */

                                            
        $buscaFaturasPagas = mysql_query("SELECT COUNT(*) FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        // PEGAMOS O RESULTADO DA CONSULTA QUE DEVE NOS RETORNAR UM INTEIRO (NÚMERO)
                                            
        $contagemFaturasPagas = mysql_fetch_array( $buscaFaturasPagas )
                                            
        or die (mysql_error());
                                            
        //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
                                            
        
        // SE O RESULTADO DA PESQUISA ACIMA FOR IGUAL A ZERO (0) A MENSAGEM DO IF É APRESENTADA OU SE HOUVEREM REGISTROS A MENSAGEM DO ELSE QUE É APRESENTADA

        if($contagemFaturasPagas> 0){
        
            echo"Existe(m) ".mysql_result($buscaFaturasPagas, 0)." registros até o momento";
            echo "<br><br>";
            $dadosFaturasPagas = mysql_query("SELECT * FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
?>
            <div align='center'>
                <table border='0' cellspacing='1' width='600' id='table1'>
<?php
            while ($faturasPagasLinha = mysql_fetch_array($dadosFaturasPagas) or die())
            //CASO OCORRA ALGUM ERRO NA CONSULTA PARA O SCRIPT E MOSTRA O MESMO NA TELA
            {

                $nome = $faturasPagasLinha["nome_cliente"];
                $valor = $faturasPagasLinha["valor_fatura"];
                // tem que fechar o php aqui
?>
                                                    
                <tr><td>Nome</td><td>Valor</td></tr>
                <tr><td><?php echo"$nome"?></td><td><?php echo"$valor";?></td></tr>
<?php
            }
?>
            </table>
           </div>

<?php
       
        }else{
                
             echo "Não existem dados para exibição no momento!";
            
            
        }
                                            
        mysql_close($_conexao);
                                            
                                                                                
?>

 

 

Só um detalhe que me deixou cabreiro é que ele não está respeitando o else

 

o script me retorna isso

Existe(m) 0 registros até o momento

 

e não mostra a tabela

 

ao invés disso

 

echo "Não existem dados para exibição no momento!";

 

 

Olá meu amigo...

 

 

neste seu if coloque..

 

 

if(mysql_num_rows($buscaFaturasPagas) > 0) {

 

seu script aqui..

 

}

else{

 

seu script aqui..

 

}

 

 

 

 

Este post solucionou a sua dúvida, peço que coloque como resolvido e me der um ponto positivo de reputação para que eu possa continuar ajudando outros colegas como você.

Caso não solucione o seu problema, peço que coloque a sua dúvida abaixo.

 


Att: João Paulo Sousa Supriano

Compartilhar este post


Link para o post
Compartilhar em outros sites

é o caso tá feio aqui, tentei mudar o if pra

 

if(mysql_num_rows($buscaFaturasPagas) > 0) {

 

ou

 

if(mysql_num_rows($buscaFaturasPagas) == 0) {

 

ainda ocorre o mesmo, bem estranho isso. Ainda não tinha visto esse problema com selects e condições.

 

Vai entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu amigo..

Seu codigo reformulado... teste e verifique se tem retorno.

Tirei algumas coisas desnecessária.

 

 

 

<?php
include "../config/database/database.php";
$buscaFaturasPagas = mysql_query("SELECT * FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10") or die (mysql_error());
$total = mysql_num_rows($buscaFaturasPagas);
if($total > 0){
echo"Existe(m) ".$total." registros até o momento";
echo "<br><br>";
echo " <div align='center'>";]
echo "<table border='0' cellspacing='1' width='600' id='table1'>";
while ($res = mysql_fetch_array($buscaFaturasPagas) )
{
$nome = $faturasPagasLinha["nome_cliente"];
$valor = $faturasPagasLinha["valor_fatura"];
printf('<tr><td>Nome</td><td>Valor</td></tr>');
printf('<tr><td>%s</td><td>%s</td></tr>',$res['nome_cliente'], $res['valor_fatura'] );
}// fim do laço
echo "</table></div>";
}else{
echo "Não existem dados para exibição no momento!";
}
mysql_close($_conexao);
?>

Este post solucionou a sua dúvida, peço que coloque como resolvido e me der um ponto positivo de reputação para que eu possa continuar ajudando outros colegas como você.

Caso não solucione o seu problema, peço que coloque a sua dúvida abaixo.

 


Att: João Paulo Sousa Supriano

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oh glória agora sim o maldito tá respeitando a condição do ELSE maravilha amigo paulinhosupriano

 

 

<?php
include "../config/database/database.php";
$buscaFaturasPagas = mysql_query("SELECT * FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
or die (mysql_error());
$total = mysql_num_rows($buscaFaturasPagas);
  if($total > 0){
            echo"Existe(m) ".$total." registros até o momento";
            echo "<br><br>";
echo " <div align='center'>";
echo "<table border='0' cellspacing='1' width='600' id='table1'>";
 while ($faturasPagasLinha = mysql_fetch_array($buscaFaturasPagas) )
{
                $nome = $faturasPagasLinha["nome_cliente"];
                $valor = $faturasPagasLinha["valor_fatura"];
printf('<tr><td>Nome</td><td>Valor</td></tr>');
printf('<tr><td>'.$nome.'</td><td>'.$valor.'</td></tr>');
}// fim do laço
echo "</table></div>";
        }else{
              echo "Não existem dados para exibição no momento!";
        }
mysql_close($_conexao);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Em 21/10/2013 at 03:00, OverMix disse:

Oh glória agora sim o maldito tá respeitando a condição do ELSE maravilha amigo paulinhosupriano

 

 


<?php
include "../config/database/database.php";
$buscaFaturasPagas = mysql_query("SELECT * FROM faturas WHERE status_fatura = '3' ORDER BY id DESC LIMIT 10")
or die (mysql_error());
$total = mysql_num_rows($buscaFaturasPagas);
  if($total > 0){
            echo"Existe(m) ".$total." registros até o momento";
            echo "<br><br>";
echo " <div align='center'>";
echo "<table border='0' cellspacing='1' width='600' id='table1'>";
 while ($faturasPagasLinha = mysql_fetch_array($buscaFaturasPagas) )
{
                $nome = $faturasPagasLinha["nome_cliente"];
                $valor = $faturasPagasLinha["valor_fatura"];
printf('<tr><td>Nome</td><td>Valor</td></tr>');
printf('<tr><td>'.$nome.'</td><td>'.$valor.'</td></tr>');
}// fim do laço
echo "</table></div>";
        }else{
              echo "Não existem dados para exibição no momento!";
        }
mysql_close($_conexao);
?>

Mano muito obrigado mesmo, sério, tipo, DEMAIS! Você salvou minha vida cara! Não sei o que seria de mim sem esses fóruns... Sério mano, de verdade, obrigado! Criei uma conta aqui só pra agradecer porque olha, vi muitos tutoriais na internet e tentei todos, mas nenhum funcionou, o seu que me salvou mesmo. Valeu \o

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.