ricardo_1977 Posted October 15, 2009 at 08:47 PM Report Share #291810 Posted October 15, 2009 at 08:47 PM Boas, eu tenho uma BD em mysql e estou a fazer algo como insercao,listagem,remocao,etc. quando vou listar a BD aparece-me tudo desformatado do tipo: Id Data Servico Comentario Total 1 2009-10-15 ccc ccc 12.5 como posso por a saida formatada(estou a utilizar o html para mostrar). como posso passar os dados para por ex excel? como ler depois de excel para a BD? agradecia ajuda Link to comment Share on other sites More sharing options...
softklin Posted October 15, 2009 at 08:53 PM Report Share #291811 Posted October 15, 2009 at 08:53 PM E que código estás a utilizar para devolver a listagem de conteúdos da base de dados? Quanto à questão do Excel, acho que podes resolver usando ficheiros no formato CSV (comma separated values). Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
scorch Posted October 15, 2009 at 08:57 PM Report Share #291812 Posted October 15, 2009 at 08:57 PM Complementando o que o softclean disse, podes usar funções predefinidas do PHP para ler e escrever como CSV. http://pt2.php.net/manual/pt_BR/function.fgetcsv.php http://pt2.php.net/manual/pt_BR/function.fputcsv.php 🙂 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
ricardo_1977 Posted October 15, 2009 at 09:02 PM Author Report Share #291816 Posted October 15, 2009 at 09:02 PM tou a utilizar html.aqui vai o codigo: listar.php: <html> <head> <title> listar a base de dados</title> <meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1"> </head> <body> <?php //conecta á base de dados require("conectdb.php"); //executa a query $query = "SELECT *FROM servico"; $res = mysql_query($query); //conta o numero de registos $num_reg = mysql_num_rows($res); //TESTE PARA SABER SE TRAZ RESULTADOS //echo '<script type="text/javascript">alert(\'Linhas na Base de Dados '.$num_reg.'\');</script>'; //monta uma tabela para organizar os dados echo '<table boder="0" cellpadding="1" cellspacing="1">'; //cria 1 ciclo for para a exebição dos dados echo "<pre>ID Data Hora Servico Comentario Total</pre>"; while($mostra = mysql_fetch_array($res)) { echo"<tr>"; //exibe os resultados echo "<td>".$mostra[id]."</td>"; echo "<td>".$mostra[data]."</td>"; echo "<td>".$mostra[servico]."</td>"; echo "<td>".$mostra[comentario]."</td>"; echo "<td>".$mostra[total]."</td>"; //echo "<td>".$mostra[data_entrada]."</td>"; echo "</tr>"; } //encerra a tabela echo "</table>"; echo "<a href = 'javascript:history.back() '> VOLTAR</a>"; //encerrar a conexao //mysql_close($db); ?> </body> listar.html: <html> <head> <title> Formulario para inserir na bd </title> <meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1"> </head> <body BGCOLOR = "#CDCDCD"> <form action = "listarS.php" method = "get" name = "servico" id = "servico"> <br><br><td height = "29" colspan = "2" valign = "top"><div align = "center"> <input type = "submit" name = "Submit" value = "Ver dados"> </div> </td> </form> <form action = "bd.html" method = "get" name = "Produto" id = "Produto"> <td height = "29" colspan = "2" valign = "top"><div align = "center"> <br><input type = "submit" name = "Submit" value = "Voltar"> </div> </td> </form> </body> </html> APARTE: Não te esqueças de usar Geshi. 🙂 Link to comment Share on other sites More sharing options...
scorch Posted October 15, 2009 at 09:09 PM Report Share #291818 Posted October 15, 2009 at 09:09 PM Ele não te dá erros, o ficheiro PHP? Tenta assim: <meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1"> </head> <body> <?php //conecta á base de dados require("conectdb.php"); //executa a query $query = "SELECT *FROM servico"; $res = mysql_query($query); //conta o numero de registos $num_reg = mysql_num_rows($res); //TESTE PARA SABER SE TRAZ RESULTADOS //echo '<script type="text/javascript">alert(\'Linhas na Base de Dados '.$num_reg.'\');</script>'; //monta uma tabela para organizar os dados echo '<table boder="0" cellpadding="1" cellspacing="1">'; //cria 1 ciclo for para a exebição dos dados echo "<pre>ID Data Hora Servico Comentario Total</pre>"; while($mostra = mysql_fetch_array($res)) { echo"<tr>"; //exibe os resultados echo "<td>".$mostra["id"]."</td>"; echo "<td>".$mostra["data"]."</td>"; echo "<td>".$mostra["servico"]."</td>"; echo "<td>".$mostra["comentario"]."</td>"; echo "<td>".$mostra["total"]."</td>"; //echo "<td>".$mostra["data_entrada"]."</td>"; echo "</tr>"; } //encerra a tabela echo "</table>"; echo "<a href = 'javascript:history.back() '> VOLTAR</a>"; //encerrar a conexao //mysql_close($db); ?> </body> </html> Mas não percebi a tua primeira dúvida. 🙂 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
softklin Posted October 15, 2009 at 09:12 PM Report Share #291820 Posted October 15, 2009 at 09:12 PM Podes usar os cabeçalhos das tabelas em html para imprimires os títulos da tua tabela. Em vez de: echo "<pre>ID Data Hora Servico Comentario Total</pre>"; usa echo "<tr><th>ID</th><th>Data</th><th>Hora</th><th>Servico</th><th>Comentario</th><th>Total</th></tr>"; Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
scorch Posted October 15, 2009 at 09:17 PM Report Share #291822 Posted October 15, 2009 at 09:17 PM Não estava a perceber a primeira dúvida, mas agora li o post do softclean e já percebi. Faz o que o softclean te disse. Só queria acrescentar uma coisa: para usares as funções de CSV, tens de a função fopen e fclose, como podes ver nos exemplos. 🙂 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
ricardo_1977 Posted October 15, 2009 at 09:30 PM Author Report Share #291826 Posted October 15, 2009 at 09:30 PM agora aparece mais formatado mas precisava de espacos.aqui vai como aparece: ID Data Servico Comentario Total 1 2009-10-15 21:20:38lavar jj 12.5 eu queria algo do genero: ID Data Servico Comentario Total 1 2009-10-15 21:20:38 lavar jj 12.5 ja agora tenho 1 metodo de pesquisa e nao me da resultado nenhum. estou a pesquisar numa tabela de clientes e da-me sempre resultado zero. aqui vai o codigo: procurar.php: <?php //recebe o nº serie do formulario $id = $_POST['Id']; //conectar á base de dados include("conectdb.php"); //monta a query de procura inserindo o nº de serie como parametro $query = "SELECT * FROM clientes where id LIKE '%'$id'%'; "; //executa a query $res=mysql_query($query); //conta o nº de registos encontrados pela pesquisa $num_reg = mysql_num_rows($res); echo '<script type="text/javascript">alert(\'Registos encontrados '.$num_reg.'\');</script>'; //monta uma tabela para organizar os dados echo "<table border='0' cellpadding='1' cellspacing='1'>"; //cria ciclo for para exibir os dados while($mostra = mysql_fetch_array($res)){ echo "<tr>"; //exibe os resultados echo "<td> $mostra[$id] </td>"; echo "<td> $mostra[$nome] </td>"; echo "<td> $mostra[$morada] </td>"; echo "<td> $mostra[$contacto] </td>"; echo "<td> $mostra[$data_nascimento] </td>"; echo "<td> $mostra[$data_entrada] </td>"; echo "</tr>"; } //encerra a tabela echo "</table>"; echo "<a href = 'javascript:history.back() '> VOLTAR</a>"; //encerrar a conexao //encerra a conexao //mysql_close($db); ?> procurar.html: <html> <head> <title> Formulario para procurar na bd </title> <meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1"> </head> <body BGCOLOR = "#CDCDCD"> <form action = "procurar.php" method = "get" name = "clientes" id = "clientes"> <table width = "450" border = "0" cellspacing = "0" cellpadding = "3"> <tr> <br><td width = "111"><div align = "right"> Id:</div></td> <td width = "339"> <input name = "id" type = "text" id = "id" size = "30"></td> </tr> <tr> <td height = "29" colspan = "2" valign = "top"><div align = "center"> <input type = "submit" name = "Submit" value = "Procurar"> </div> </td> </tr> </table> </form> /*<form action = "bd.html" method = "get" name = "Produto" id = "Produto"> <tr> <td height = "29" colspan = "2" valign = "top"><div align = "center"> <br><input type = "submit" name = "Submit" value = "Voltar"> </div> </td> </tr> </form>*/ </body> </html> o que esta mal? APARTE: Não te esqueças de usar Geshi. 🙂 Link to comment Share on other sites More sharing options...
scorch Posted October 15, 2009 at 09:34 PM Report Share #291828 Posted October 15, 2009 at 09:34 PM Tenta meter em CSS: th { padding-right: 5px; padding-left: 5px; } td { padding-right: 5px; padding-left: 5px; } table { text-align: center; } PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
ricardo_1977 Posted October 15, 2009 at 09:36 PM Author Report Share #291829 Posted October 15, 2009 at 09:36 PM como faço isso?nunca trabalhei com css Link to comment Share on other sites More sharing options...
scorch Posted October 16, 2009 at 12:13 PM Report Share #291889 Posted October 16, 2009 at 12:13 PM <html> <head> <title> Formulario para procurar na bd </title> <meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1"> <style type="text/css"> th { padding-right: 5px; padding-left: 5px; } td { padding-right: 5px; padding-left: 5px; } table { text-align: center; } </style> </head> <body BGCOLOR = "#CDCDCD"> <form action = "procurar.php" method = "get" name = "clientes" id = "clientes"> <table width = "450" border = "0" cellspacing = "0" cellpadding = "3"> <tr> <br><td width = "111"><div align = "right"> Id:</div></td> <td width = "339"> <input name = "id" type = "text" id = "id" size = "30"></td> </tr> <tr> <td height = "29" colspan = "2" valign = "top"><div align = "center"> <input type = "submit" name = "Submit" value = "Procurar"> </div> </td> </tr> </table> </form> /*<form action = "bd.html" method = "get" name = "Produto" id = "Produto"> <tr> <td height = "29" colspan = "2" valign = "top"><div align = "center"> <br><input type = "submit" name = "Submit" value = "Voltar"> </div> </td> </tr> </form>*/ </body> </html> PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
ricardo_1977 Posted October 16, 2009 at 05:50 PM Author Report Share #291915 Posted October 16, 2009 at 05:50 PM continua com o mesmo formato. quanto á outra duvida que pus: estou a pesquisar uma tabela(clientes) pelo seu id e da me sempre resultado zero.tenho o codigo descrito acima em procurar.html e procurar.php. o id é 1 inteiro com auto increment e é chave primaria da tabela. podem-me ajudar? Link to comment Share on other sites More sharing options...
scorch Posted October 16, 2009 at 08:09 PM Report Share #291930 Posted October 16, 2009 at 08:09 PM Tenta antes assim: <?php //recebe o nº serie do formulario $id = $_POST['id']; //conectar á base de dados include("conectdb.php"); //monta a query de procura inserindo o nº de serie como parametro $query = "SELECT * FROM clientes where id LIKE '%'$id'%'; "; //executa a query $res=mysql_query($query); //conta o nº de registos encontrados pela pesquisa $num_reg = mysql_num_rows($res); echo '<script type="text/javascript">alert(\'Registos encontrados '.$num_reg.'\');</script>'; //monta uma tabela para organizar os dados echo "<table border='0' cellpadding='1' cellspacing='1'>"; //cria ciclo for para exibir os dados while($mostra = mysql_fetch_array($res)){ echo "<tr>"; //exibe os resultados echo "<td> $mostra[$id] </td>"; echo "<td> $mostra[$nome] </td>"; echo "<td> $mostra[$morada] </td>"; echo "<td> $mostra[$contacto] </td>"; echo "<td> $mostra[$data_nascimento] </td>"; echo "<td> $mostra[$data_entrada] </td>"; echo "</tr>"; } //encerra a tabela echo "</table>"; echo "<a href = 'javascript:history.back() '> VOLTAR</a>"; //encerrar a conexao //encerra a conexao //mysql_close($db); ?> Quanto à segunda dúvida de formatação, podes mostrar o HTML que o browser gera? O Código-Fonte. 😛 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
ricardo_1977 Posted October 16, 2009 at 08:28 PM Author Report Share #291939 Posted October 16, 2009 at 08:28 PM quanto á pesquisa continua a dar resultado zero elementos encontrados. quanto á formatação aqui vai o codigo fonte: <html> <head> <title> listar a base de dados</title> <meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1"> </head> <body> <table boder="0" cellpadding="1" cellspacing="1"><tr><th>ID</th><th>Data</th><th>Servico</th><th>Comentario</th><th>Total</th></tr><tr><td>1</td><td>2009-10-15 21:20:38</td><td>lavar</td><td>jj</td><td>12.5</td></tr></table><a href = 'javascript:history.back() '> VOLTAR</a></body> Link to comment Share on other sites More sharing options...
ricardo_1977 Posted October 16, 2009 at 08:32 PM Author Report Share #291942 Posted October 16, 2009 at 08:32 PM quanto á questao de pesquisa se puser: $query= "SELECT * FROM clientes where id LIKE '%'$id'%'; "; da-me resultado zero elementos encontrados mas se puser: $query= "SELECT * FROM clientes where id LIKE '%$id%'; "; da-me todos os elementos que estao na tabela clientes Link to comment Share on other sites More sharing options...
scorch Posted October 16, 2009 at 08:37 PM Report Share #291945 Posted October 16, 2009 at 08:37 PM Erro meu. Desculpa. Coloquei no ficheiro errado. 😛 Tenta assim. <?php //recebe o nº serie do formulario $id = $_POST['id']; //conectar á base de dados include("conectdb.php"); //monta a query de procura inserindo o nº de serie como parametro $query = "SELECT * FROM clientes where id LIKE '%'$id'%'; "; //executa a query $res=mysql_query($query); echo "<html><head>"; echo "<style type="text/css"> th { padding-right: 5px; padding-left: 5px; } td { padding-right: 5px; padding-left: 5px; } table { text-align: center; } </style>"; //conta o nº de registos encontrados pela pesquisa $num_reg = mysql_num_rows($res); echo '<script type="text/javascript">alert(\'Registos encontrados '.$num_reg.'\');</script>'; echo "</head><body>"; //monta uma tabela para organizar os dados echo "<table border='0' cellpadding='1' cellspacing='1'>"; //cria ciclo for para exibir os dados while($mostra = mysql_fetch_array($res)){ echo "<tr>"; //exibe os resultados echo "<td> $mostra[$id] </td>"; echo "<td> $mostra[$nome] </td>"; echo "<td> $mostra[$morada] </td>"; echo "<td> $mostra[$contacto] </td>"; echo "<td> $mostra[$data_nascimento] </td>"; echo "<td> $mostra[$data_entrada] </td>"; echo "</tr>"; } //encerra a tabela echo "</table>"; echo "<a href = 'javascript:history.back() '> VOLTAR</a>"; //encerrar a conexao //encerra a conexao //mysql_close($db); echo "</body></html>"; ?> PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
ricardo_1977 Posted October 16, 2009 at 08:44 PM Author Report Share #291949 Posted October 16, 2009 at 08:44 PM o problema é que aqui continua a não me dar dados nenhuns.nao sei se me fiz explicar mas aqui vai de novo:eu tenho uma tabela clientes onde 1 dos campos é o id que é inteiro com auto increment e chave primaria.depois eu quero pesquisar na minha tabela por um desses elementos e quero que a tabela me devolva todos os dados desse elemento.por ex se pesquisar por:1 deveria dar: 1 ricardo braga 2009-10-15 1977-06-12 mas ou nao me da nada ou me da os resultados todos(todos os id's k tenho). volto a por o codigo que tenho: procurar.html: <html> <head> <title> Formulario para procurar na bd </title> <meta http-equiv = "Content-Type" action = "post" content = "text/html; charset = iso-8859-1"> </head> <body BGCOLOR = "#CDCDCD"> <form action = "procurar.php" method = "get" name = "clientes" id = "clientes"> <table width = "450" border = "0" cellspacing = "0" cellpadding = "3"> <tr> <br><td width = "111"><div align = "right"> Id:</div></td> <td width = "339"> <input name = "id" type = "int" id = "id" size = "30"></td> </tr> <tr> <td height = "29" colspan = "2" valign = "top"><div align = "center"> <input type = "submit" name = "Submit" value = "Procurar"> </div> </td> </tr> </table> </form> <form action = "bd.html" method = "get" name = "Produto" id = "Produto"> <tr> <td height = "29" colspan = "2" valign = "top"><div align = "center"> <br><input type = "submit" name = "Submit" value = "Voltar"> </div> </td> </tr> </form> procurar.php: <?php //recebe o id do procurar.html $id = $_POST['id']; //conectar á base de dados include("conectdb.php"); echo "<table>"; //monta a query de procura inserindo o id como parametro $re= "SELECT * FROM clientes where id LIKE '%'$id'%'; "; $result = mysql_query($re); //conta o nº de registos encontrados pela pesquisa $num_reg = mysql_num_rows($result); echo '<script type="text/javascript">alert(\'Registos encontrados '.$num_reg.'\');</script>'; //monta uma tabela para organizar os dados //echo "<table border='0' cellpadding='1' cellspacing='1'>"; //cria ciclo for para exibir os dados while($dados= mysql_fetch_assoc($result)) { ?> <tr><td>ID:</td> <td><?=$dados['id'];?></td></TR> <td>Nome:</td> <td><?=$dados['nome'];?></td></TR> <td>Morada</td> <td><?=$dados['morada'];?></td></TR> <td>Contacto:</td> <td><?=$dados['contacto'];?></td></TR> <td>Data de Nascimento:</td> <td><?=$dados['data_nascimento'];?></td></TR> <td>Data de Entrada::</td> <td><?=$dados['data_entrada'];?></td></TR> <td>--------------------</td></TR> <?php } //encerra a tabela echo "</table>"; echo "<a href = 'javascript:history.back() '> VOLTAR</a>"; //encerrar a conexao //encerra a conexao mysql_close($db); ?> agradeço a ajuda @ricardo_1977, começa a usar Geshi, para o post ficar com um aspecto mais apresentável. 😛 Link to comment Share on other sites More sharing options...
scorch Posted October 16, 2009 at 09:48 PM Report Share #291969 Posted October 16, 2009 at 09:48 PM Tenta antes assim: <?php //recebe o id do procurar.html $id = $_POST['id']; //conectar á base de dados include("conectdb.php"); echo "<table>"; //monta a query de procura inserindo o id como parametro $re= "SELECT * FROM clientes where id LIKE '%$id%'"; $result = mysql_query($re); //conta o nº de registos encontrados pela pesquisa $num_reg = mysql_num_rows($result); echo '<script type="text/javascript">alert(\'Registos encontrados '.$num_reg.'\');</script>'; //monta uma tabela para organizar os dados //echo "<table border='0' cellpadding='1' cellspacing='1'>"; //cria ciclo for para exibir os dados while($dados= mysql_fetch_assoc($result)) { ?> <tr><td>ID:</td> <td><?=$dados['id'];?></td></TR> <td>Nome:</td> <td><?=$dados['nome'];?></td></TR> <td>Morada</td> <td><?=$dados['morada'];?></td></TR> <td>Contacto:</td> <td><?=$dados['contacto'];?></td></TR> <td>Data de Nascimento:</td> <td><?=$dados['data_nascimento'];?></td></TR> <td>Data de Entrada::</td> <td><?=$dados['data_entrada'];?></td></TR> <td>--------------------</td></TR> <?php } //encerra a tabela echo "</table>"; echo "<a href = 'javascript:history.back() '> VOLTAR</a>"; //encerrar a conexao //encerra a conexao mysql_close($db); ?> Não tenho a certeza, porque não costumo usar o LIKE querys, mas uma pequena busca pelo oogle e acho que encontrei o erro na tua query. 😛 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
ricardo_1977 Posted October 16, 2009 at 09:53 PM Author Report Share #291972 Posted October 16, 2009 at 09:53 PM se puser dessa forma da-me os registos todos e eu quero o registo com aquele id. ja dei voltas e voltas e ou me da zero registos ou os registos todos. agora so volto ca amanha. se conseguires ver o meu erro responde. obriigado Link to comment Share on other sites More sharing options...
scorch Posted October 16, 2009 at 09:56 PM Report Share #291974 Posted October 16, 2009 at 09:56 PM Nessa query, estás a excluir todos os registos que contiverem esse ID. tens consciência disso? Podes ver aqiu um grande exemplo (em inglês): SQL LIKE Operator PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now