magnetu 0 Denunciar post Postado Setembro 9, 2011 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
Victor Cometti 8 Denunciar post Postado Setembro 9, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Setembro 9, 2011 Faz assim .. SELECT CONCAT( IFNULL( `usoDia`, '00' ), '/' , IFNULL( `usoMes`, '00' ) , '/', IFNULL( `usoAno`, '000' ) ) as `uso` FROM `tabela ..` Então recupera como: $campo[ 'uso' ] Compartilhar este post Link para o post Compartilhar em outros sites
magnetu 0 Denunciar post Postado Setembro 9, 2011 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
KMRodrigo 1 Denunciar post Postado Setembro 9, 2011 as `uso` n tem no seu codigo mas tem no do André. Compartilhar este post Link para o post Compartilhar em outros sites
magnetu 0 Denunciar post Postado Setembro 9, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Setembro 9, 2011 Você colocou o alias `uso` conforme o meu ? Compartilhar este post Link para o post Compartilhar em outros sites
magnetu 0 Denunciar post Postado Setembro 9, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Setembro 9, 2011 Claro que fez, você está executando a query errada !!! Compartilhar este post Link para o post Compartilhar em outros sites
magnetu 0 Denunciar post Postado Setembro 9, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Setembro 9, 2011 Vou voltar a falar, você está executando a query errada, veja que você tem o SQL de $concat e $query. Compartilhar este post Link para o post Compartilhar em outros sites
magnetu 0 Denunciar post Postado Setembro 9, 2011 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
magnetu 0 Denunciar post Postado Setembro 9, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Setembro 9, 2011 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
William Bruno 1501 Denunciar post Postado Setembro 9, 2011 <?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
magnetu 0 Denunciar post Postado Setembro 9, 2011 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
William Bruno 1501 Denunciar post Postado Setembro 9, 2011 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
magnetu 0 Denunciar post Postado Setembro 9, 2011 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