Ir para conteúdo

POWERED BY:

Arquivado

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

magnetu

[Resolvido] Onde esta o erro?

Recommended Posts

Bom dia a todo, estou fazendo uma consulta, porem um dos campos preciso que retorne 3 campos concatenados, eu ja tinha feito isso dias atraz porem de outra maneira mas agora não quer mais funcionar, se alguem puder identificar o erro eu agradeço, pois ja tentei varias saidas mas não consegui.

 

Código

<?php
$arquivo = 'usuarios.xls';

$query = "SELECT * FROM user ORDER BY usoNome";
$resultado = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta");

$concat = "SELECT CONCAT(ifnull(usoDia,'00'),'/',ifnull(usoMes,'00'),'/', ifnull(usoAno,'0000'))FROM user";

$html = '';
$html .= '<table border=1>';
$html .= '<tr>';
$html .= '</tr>';
$html .= '<tr>';
$html .= '<td><b>ID</b></td>';
$html .= '<td><b>Nome</b></td>';
$html .= '<td><b>Endereço</b></td>';
$html .= '<td><b>Bairro</b></td>';
$html .= '<td><b>Cidade</b></td>';
$html .= '<td><b>Estado</b></td>';
$html .= '<td><b>CEP</b></td>';
$html .= '<td><b>Fone</b></td>';
$html .= '<td><b>D.N.</b></td>';
$html .= '<td><b>Sexo</b></td>';
$html .= '<td><b>Email</b></td>';
$html .= '</tr>';

while($campo = mysql_fetch_array ($resultado)){

$id = $campo['usoId'];
$nome = $campo['usoNome'];
$rua  = $campo['usoEndereco'];
$bairro = $campo['usoBairro'];
$cidade = $campo['usoCidade'];
$estado = $campo['usoEstado'];
$cep = $campo['usoCEP'];
$fone = $campo['usoTelefone'];
$dn = ($concat);
$sexo = $campo['usoSexo'];
$email = $campo['usoEmail'];

$html .= '<tr>';
$html .= '<td>' . $id . '</td>';
$html .= '<td>' . $nome . '</td>';
$html .= '<td>' . $rua . '</td>';
$html .= '<td>' . $bairro . '</td>';
$html .= '<td>' . $cidade . '</td>';
$html .= '<td>' . $estado . '</td>';
$html .= '<td>' . $cep . '</td>';
$html .= '<td>' . $fone . '</td>';
$html .= '<td>' . $dn . '</td>';
$html .= '<td>' . $sexo . '</td>';
$html .= '<td>' . $email . '</td>';
$html .= '</tr>';
}
$html .= '</table>';

echo "$html";
?>

 

o Concat que estou fazendo

$concat = "SELECT CONCAT(ifnull(usoDia,'00'),'/',ifnull(usoMes,'00'),'/', ifnull(usoAno,'0000'))FROM user";

Compartilhar este post


Link para o post
Compartilhar em outros sites

você num vai selecionar os outros campos da tabela não?

e cria um alias para esse concat

 

edit:

agora que vi, você tem duas querys, a segunda query não está sendo executada

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu tinha feito anteriormente era algo parecido com isso

 

$fone = $campo['usoTelefone'];
$dn = "SELECT CONCAT(ifnull(usoDia,'00'),'/',ifnull(usoMes,'00'),'/', ifnull(usoAno,'0000'))FROM user";
$sexo = $campo['usoSexo'];

 

não me lembro ao certo, mas tinha retornado o resultado esperado, mas agora retorna erro ou em branco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey, eu tinha feito mais ou menos isso a diferença é que eu recuperava o campo usoData, troquei pelo seu mas ele continua retornando campo vazio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim coloquei identico ao seu... vou postar para voce ver..., vai que eu fiz coisa errada o que não é muito difícil...

 

<?php
$arquivo = 'usuarios.xls';

$query = "SELECT * FROM user ORDER BY usoNome";
$resultado = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta");

$concat = "SELECT CONCAT(  
      IFNULL( `usoDia`, '00' ), 
               '/' , 
      IFNULL( `usoMes`, '00' ) , 
               '/',  
      IFNULL( `usoAno`, '000'  )  
) as `uso` FROM `user`";

$html = '';
$html .= '<table border=1>';
$html .= '<tr>';
$html .= '</tr>';
$html .= '<tr>';
$html .= '<td><b>ID</b></td>';
$html .= '<td><b>Nome</b></td>';
$html .= '<td><b>Endereço</b></td>';
$html .= '<td><b>Bairro</b></td>';
$html .= '<td><b>Cidade</b></td>';
$html .= '<td><b>Estado</b></td>';
$html .= '<td><b>CEP</b></td>';
$html .= '<td><b>Fone</b></td>';
$html .= '<td><b>D.N.</b></td>';
$html .= '<td><b>Sexo</b></td>';
$html .= '<td><b>Email</b></td>';
$html .= '</tr>';

while($campo = mysql_fetch_array ($resultado)){

$id = $campo['usoId'];
$nome = $campo['usoNome'];
$rua  = $campo['usoEndereco'];
$bairro = $campo['usoBairro'];
$cidade = $campo['usoCidade'];
$estado = $campo['usoEstado'];
$cep = $campo['usoCEP'];
$fone = $campo['usoTelefone'];
$dn = $campo['uso'];
$sexo = $campo['usoSexo'];
$email = $campo['usoEmail'];

$html .= '<tr>';
$html .= '<td>' . $id . '</td>';
$html .= '<td>' . $nome . '</td>';
$html .= '<td>' . $rua . '</td>';
$html .= '<td>' . $bairro . '</td>';
$html .= '<td>' . $cidade . '</td>';
$html .= '<td>' . $estado . '</td>';
$html .= '<td>' . $cep . '</td>';
$html .= '<td>' . $fone . '</td>';
$html .= '<td>' . $dn . '</td>';
$html .= '<td>' . $sexo . '</td>';
$html .= '<td>' . $email . '</td>';
$html .= '</tr>';
}
$html .= '</table>';

echo "$html";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu tentei de muitas formas na minha lógica mas retorna vazio, e quando retorna alguma coisa no campo uso aparece só a Letra "S"

 

$dn = $concat['uso'];

 

Se puder postar como fica eu agradeço, pois estou aprendendo a lógica do PHP mas as vezes passa direto por não entender muito, acabo não vendo onde esta o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou tentando entender, se eu criei a variável $concat então tenho de usar ela para o campo $dn

 

então ficaria assim $dn = $concat['uso'], ou então mudo todo a linha de pensamento e declaro o SELECT CONCAT dentro da variável $dn... tentei destas maneiras mas nenhuma me retorna o resultado esperado.

 

Eu sei que preciso pensar para entender o que estou fazendo mas fiz de um tudo que veio em minha mente mas nenhum retorna o resultado esperado.

 

Mas valeu vou continuar tentando aqui para ver o que consigo... uma hora vai ter de dar certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera num vai... o mais perto que cheguei de dar certo foi desta maneira abaixo porem na Data de nacimento ela se repete ao invez de listar todas. ela pega uma data e repete em todos

 

<?php
    ob_start(); 
    $arquivo = 'cadastro.xls' ; 

 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
    header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT"); 
    header("Cache-Control: no-cache, must-revalidate"); 
    header("Pragma: no-cache"); 
    header("Content-type: application/x-msexcel");  
    header("Content-Disposition: attachment; filename=\"{$arquivo}\"" ); 
    header("Content-Description: PHP Generated Data" );
?>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<?php
$query = "SELECT CONCAT( IFNULL( `usoDia`, '00' ), '/' , IFNULL( `usoMes`, '00' ) , '/', IFNULL( `usoAno`, '000' )) as `usoData` FROM `user`";
$resultadodn = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta");

while($campodn = mysql_fetch_array ($resultadodn))
{
$dn = $campodn['usoData'];

$html .= '<td>' . $dn . '</td>';
}

$query = "SELECT * FROM user ORDER BY usoNome";
$resultado = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta");

$html = '';
$html .= '<table border=1>';
$html .= '<tr>';
$html .= '<td><b>ID</b></td>';
$html .= '<td><b>Nome</b></td>';
$html .= '<td><b>Endereço</b></td>';
$html .= '<td><b>Bairro</b></td>';
$html .= '<td><b>Cidade</b></td>';
$html .= '<td><b>Estado</b></td>';
$html .= '<td><b>CEP</b></td>';
$html .= '<td><b>Fone</b></td>';
$html .= '<td><b>D.N.</b></td>';
$html .= '<td><b>Sexo</b></td>';
$html .= '<td><b>Email</b></td>';
$html .= '</tr>';

while($campo = mysql_fetch_array ($resultado))
{
$id = $campo['usoId'];
$nome = $campo['usoNome'];
$rua  = $campo['usoEndereco'];
$bairro = $campo['usoBairro'];
$cidade = $campo['usoCidade'];
$estado = $campo['usoEstado'];
$cep = $campo['usoCEP'];
$fone = $campo['usoTelefone'];
$sexo = $campo['usoSexo'];
$email = $campo['usoEmail'];

$html .= '<tr>';
$html .= '<td>' . $id . '</td>';
$html .= '<td>' . $nome . '</td>';
$html .= '<td>' . $rua . '</td>';
$html .= '<td>' . $bairro . '</td>';
$html .= '<td>' . $cidade . '</td>';
$html .= '<td>' . $estado . '</td>';
$html .= '<td>' . $cep . '</td>';
$html .= '<td>' . $fone . '</td>';
$html .= '<td>' . $dn . '</td>';
$html .= '<td>' . $sexo . '</td>';
$html .= '<td>' . $email . '</td>';
$html .= '</tr>';
}
$html .= '</table>';
echo "$html";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque provavelmente, você não tem um 'else' no seu sql que faz o concat na data.

Executa assim, veja de dá certo.

$query = "SELECT CONCAT( 
                     IF( `usoDia` = null, '00' , `usoDia` ), 
               '/' , IF( `usoMes` = null, '00' ,  `usoMes` ) , 
               '/' , IF( `usoAno` = null, '0000' , `usoAno` ) 
               ) as `usoData` FROM `user`";
$resultadodn = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta");

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
    ob_start(); 
    $arquivo = 'cadastro.xls' ; 

    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
    header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT"); 
    header("Cache-Control: no-cache, must-revalidate"); 
    header("Pragma: no-cache"); 
    header("Content-type: application/x-msexcel");  
    header("Content-Disposition: attachment; filename=\"{$arquivo}\"" ); 
    header("Content-Description: PHP Generated Data" );
?>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<?php
   $query = "SELECT CONCAT( 
                     IF( `usoDia` = null, '00' , `usoDia` ), 
               '/' , IF( `usoMes` = null, '00' ,  `usoMes` ) , 
               '/' , IF( `usoAno` = null, '0000' , `usoAno` ) 
               ) as `usoData`, `user`.* FROM `user`  ORDER BY usoNome";

   $resultadodn = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta");



   $html = '';
   $html .= '<table border=1>';
   $html .= '<tr>';
   $html .= '<td><b>ID</b></td>';
   $html .= '<td><b>Nome</b></td>';
   $html .= '<td><b>Endereço</b></td>';
   $html .= '<td><b>Bairro</b></td>';
   $html .= '<td><b>Cidade</b></td>';
   $html .= '<td><b>Estado</b></td>';
   $html .= '<td><b>CEP</b></td>';
   $html .= '<td><b>Fone</b></td>';
   $html .= '<td><b>D.N.</b></td>';
   $html .= '<td><b>Sexo</b></td>';
   $html .= '<td><b>Email</b></td>';
   $html .= '</tr>';


   while( $campo = mysql_fetch_assoc($resultadodn) )
   {
       $html .= '<tr>';
       $html .= '<td>' . $campo['usoId'] . '</td>';
       $html .= '<td>' . $campo['usoNome'] . '</td>';
       $html .= '<td>' . $campo['usoEndereco'] . '</td>';
       $html .= '<td>' . $campo['usoBairro'] . '</td>';
       $html .= '<td>' . $campo['usoCidade'] . '</td>';
       $html .= '<td>' . $campo['usoEstado'] . '</td>';
       $html .= '<td>' . $campo['usoCEP'] . '</td>';
       $html .= '<td>' . $campo['usoTelefone'] . '</td>';
       $html .= '<td>' . $campo['usoData'] . '</td>';
       $html .= '<td>' . $campo['usoSexo'] . '</td>';
       $html .= '<td>' . $campo['usoEmail'] . '</td>';
       $html .= '</tr>';
   }

$html .= '</table>';
echo $html;
?>

 

 

O erro era que você estava sobrescrevendo a query, e fazendo 2 loops.

Rode o script exatamente e somente como postei acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vixi kkkkk tinha sobrado uns 100 neuronios agora zero... vou deixar quieto ja perdi um dia de trabalho atraz disso... se eu consegui recuperar os neuronios eu tento dinovo :)

 

Willian e Andrey, fiz das duas maneiras e mantiveram erro, então fiz umas alterações agora ele posta as datas todas mas o restante dos dados não vem, se eu tirar o concat da variavel ele retorna os dados mas não vem a data

 

ID Nome Endereço Bairro Cidade Estado CEP Fone D.N. Sexo Email

04/04/1984

26/02/1970

26/02/1970

 

 

aparece da maneira acima dentro do excel..., se eu tirar o concat e deixar so o By Order ai some as dastas

 

 

<?php
$query = "SELECT CONCAT(  
                     IF( `usoDia` = null, '00' , `usoDia` ),  
               '/' , IF( `usoMes` = null, '00' ,  `usoMes` ) ,  
               '/' , IF( `usoAno` = null, '0000' , `usoAno` )  
               ) AS `usoData` FROM `user` ORDER BY usoNome";
$resultado = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta");

$html = '';
$html .= '<table border=1>';
$html .= '<tr>';
$html .= '<td><b>ID</b></td>';
$html .= '<td><b>Nome</b></td>';
$html .= '<td><b>Endereço</b></td>';
$html .= '<td><b>Bairro</b></td>';
$html .= '<td><b>Cidade</b></td>';
$html .= '<td><b>Estado</b></td>';
$html .= '<td><b>CEP</b></td>';
$html .= '<td><b>Fone</b></td>';
$html .= '<td><b>D.N.</b></td>';
$html .= '<td><b>Sexo</b></td>';
$html .= '<td><b>Email</b></td>';
$html .= '</tr>';

while($campo = mysql_fetch_array ($resultado))
{
$id = $campo['usoId'];
$nome = $campo['usoNome'];
$rua  = $campo['usoEndereco'];
$bairro = $campo['usoBairro'];
$cidade = $campo['usoCidade'];
$estado = $campo['usoEstado'];
$cep = $campo['usoCEP'];
$fone = $campo['usoTelefone'];
$dn = $campo['usoData'];
$sexo = $campo['usoSexo'];
$email = $campo['usoEmail'];

$html .= '<tr>';
$html .= '<td>' . $id . '</td>';
$html .= '<td>' . $nome . '</td>';
$html .= '<td>' . $rua . '</td>';
$html .= '<td>' . $bairro . '</td>';
$html .= '<td>' . $cidade . '</td>';
$html .= '<td>' . $estado . '</td>';
$html .= '<td>' . $cep . '</td>';
$html .= '<td>' . $fone . '</td>';
$html .= '<td>' . $dn . '</td>';
$html .= '<td>' . $sexo . '</td>';
$html .= '<td>' . $email . '</td>';
$html .= '</tr>';
}
$html .= '</table>';
echo "$html";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

altere:

 

                ) AS `usoData` FROM `user` ORDER BY usoNome";

para:

                ) AS `usoData`, user.* FROM `user` ORDER BY usoNome";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian o seu código retorna igual ao meu, ele pega o campo que existe no BD... que estão todos vazios

 

veja como esta o meu, o que notei foi o seguinte, nesta $query ou ele faz o CONCAT ou ele Faz o ORDER BY, mas os dois juntos que não estão rolando.

 

<?php 
   $query = "SELECT CONCAT(  
                     IF( `usoDia` = null, '00' , `usoDia` ),  
               '/' , IF( `usoMes` = null, '00' ,  `usoMes` ) ,  
               '/' , IF( `usoAno` = null, '0000' , `usoAno` )  
               ) as `usoData`, `user`.* FROM `user`  ORDER BY usoNome"; 

   $resultadodn = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta"); 



   $html = ''; 
   $html .= '<table border=1>';

 

Galera muito obrigado,

 

Consegui resolver com a ajuda de vocês... um pouco de cada código deu resultado final segue o código se alguem precisar.

 

Bom fim de semana a todos...

 

<?php 
    ob_start();  
    $arquivo = 'cadastro.xls' ;  

    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
    header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");  
    header("Cache-Control: no-cache, must-revalidate");  
    header("Pragma: no-cache");  
    header("Content-type: application/x-msexcel");   
    header("Content-Disposition: attachment; filename=\"{$arquivo}\"" );  
    header("Content-Description: PHP Generated Data" ); 
?> 
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 
<?php 
   $query = "SELECT CONCAT(  
                     IF( `usoDia` = null, '00' , `usoDia` ),  
               '/' , IF( `usoMes` = null, '00' ,  `usoMes` ) ,  
               '/' , IF( `usoAno` = null, '0000' , `usoAno` )  
               ) AS `uso`, `user` . * FROM `user` ORDER BY usoNome"; 

   $resultadodn = mysql_query($query) or die ("Erro: Não foi possível realizar a consulta"); 



   $html = ''; 
   $html .= '<table border=1>'; 
   $html .= '<tr>'; 
   $html .= '<td><b>ID</b></td>'; 
   $html .= '<td><b>Nome</b></td>'; 
   $html .= '<td><b>Endereço</b></td>'; 
   $html .= '<td><b>Bairro</b></td>'; 
   $html .= '<td><b>Cidade</b></td>'; 
   $html .= '<td><b>Estado</b></td>'; 
   $html .= '<td><b>CEP</b></td>'; 
   $html .= '<td><b>Fone</b></td>'; 
   $html .= '<td><b>D.N.</b></td>'; 
   $html .= '<td><b>Sexo</b></td>'; 
   $html .= '<td><b>Email</b></td>'; 
   $html .= '</tr>'; 


   while( $campo = mysql_fetch_assoc($resultadodn) ) 
   { 
       $html .= '<tr>'; 
       $html .= '<td>' . $campo['usoId'] . '</td>'; 
       $html .= '<td>' . $campo['usoNome'] . '</td>'; 
       $html .= '<td>' . $campo['usoEndereco'] . '</td>'; 
       $html .= '<td>' . $campo['usoBairro'] . '</td>'; 
       $html .= '<td>' . $campo['usoCidade'] . '</td>'; 
       $html .= '<td>' . $campo['usoEstado'] . '</td>'; 
       $html .= '<td>' . $campo['usoCEP'] . '</td>'; 
       $html .= '<td>' . $campo['usoTelefone'] . '</td>'; 
       $html .= '<td>' . $campo['uso'] . '</td>'; 
       $html .= '<td>' . $campo['usoSexo'] . '</td>'; 
       $html .= '<td>' . $campo['usoEmail'] . '</td>'; 
       $html .= '</tr>'; 
   } 

$html .= '</table>'; 
echo $html; 
?>

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.