• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ricardo_1977

Ficheiros

23 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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>";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta meter em CSS:

th {
padding-right: 5px;
padding-left: 5px;
}
td {
padding-right: 5px;
padding-left: 5px;
}

table {
text-align: center;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
<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>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Erro meu. Desculpa. Coloquei no ficheiro errado. :P

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>";
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se tu apenas queres o registo com aquele id específico, e apenas esse, então não deves usar o LIKE. Este operador apenas se usa quando queres encontrar vários registos seguindo um padrão.

Para obteres o registo pretendido, basta fazer uma query do tipo:

SELECT * FROM clientes where id = '$id'

OU então poderias ter a intenção de procurar utilizadores pelo seu nome inicial ou final, por exemplo, todas as mulheres cujo nome inicial é "Maria". Aí, já farias qualquer coisa do género:

SELECT * FROM clientes where nome LIKE 'Maria%'

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nesse aspeto do "LIKE" tens razao.

mas pondo da forma como tens em cima ... where id = '$id' nao me encontra nada na mesma.

não sei mesmo o que se passa.aparentemente esta td bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja descobri tinha 1 erro estupido no procurar.php.tinha: $id = $_POST['id']; e deve ser :$id = $_POST["id"];

thanks for your help. vou marcar como resolvido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora