Página 2 de 7
Usando tabelas dBase com PHP
Enviado: 24 Ago 2013 22:45
por cjp
Funcionou, meu caro. Muito obrigado.
Entretanto, ainda está dando o seguinte aviso (parece que não é erro):
Código: Selecionar todos
PHP Warning: odbc_connect() [<a href='function.odbc-connect'>function.odbc-connect</a>]: SQL error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified, SQL
Também gostaria de saber se existe alguma possibilidade de pesquisar dentro dos campos da base.
Usando tabelas dBase com PHP
Enviado: 25 Ago 2013 13:09
por rochinha
Amiguinho,
Analisando o trecho abaixo:
Código: Selecionar todos
$dsn = "DRIVER={Driver da Microsoft para o dBase (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME']).";";
$conn= odbc_connect($dsn,"","");
Modifique para:
Código: Selecionar todos
$dsn = "DRIVER={Driver da Microsoft para o dBase (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME']).";";
echo $dsn;
$conn= odbc_connect($dsn,"","");
echo $dsn;
echo irá mostrar o resultado, identico ao
@..SAY de forma que voce veja o que realmente está passando ao PHP.
Usando tabelas dBase com PHP
Enviado: 25 Ago 2013 18:55
por filizola
alguém aí teria uma consulta ao estoque de produtos ?
Usando tabelas dBase com PHP
Enviado: 25 Ago 2013 23:57
por cjp
Ok, apareceu.
E quanto à outra questão: existe uma forma de filtrar campos da base para a exibição? Ou fazer uma busca nos campos?
Usando tabelas dBase com PHP
Enviado: 26 Ago 2013 09:44
por rochinha
Amiguinhos,
Segue um exemplo de listagem em uma base de dados onde acontece uma fultragem(SELECT) dos dados e apresentação de conteúdo de campos selecionados:
Código: Selecionar todos
<html>
<body>
<?php
$dsn = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME']).";";
$conn= odbc_connect($dsn,"","");
if(!$conn)
{ exit("conexao falhou: ".odbc_errormsg()); }
$sql="SELECT * FROM clientes WHERE estado = 'SP'";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Nome</th>";
echo "<th>Telefone</th></tr>";
while (odbc_fetch_row($rs))
{
$compname=odbc_result($rs,"Nome");
$conname=odbc_result($rs,"Telefone");
echo "<tr><td>$compname</td>";
echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
</body>
</html>
Usando tabelas dBase com PHP
Enviado: 27 Ago 2013 01:19
por cjp
Funcionou, meu caro. Muito obrigado.
Mas ainda me faltam duas coisas para isso ficar perfeito:
1) preciso deixar o usuário do site escolher o filtro; ou seja, preciso abrir um campo para ele digitar o filtro a ser usado;
2) ao invés de WHERE estado = 'SP', eu precisava de algo como WHERE 'SP' $ estado, para ele localizar uma parte do campo; tentei assim, mas não funcionou.
Por favor, dá uma mais ajudazinha pra terminar isso. Obrigado.
Usando tabelas dBase com PHP
Enviado: 27 Ago 2013 19:04
por rochinha
Amiguinho,
Não tem muito segredo, bastará voce pensar nos formulários, ou seja, assim como se cria uma tela com get voce deverá criar um form com inputs e direcionar para um script que faça a verificação e traga o resultado:
Código: Selecionar todos
<!DOCTYPE html>
<html>
<body>
<form action="filtrar.php" method="post">
<label>Pesquisar Estado:</label>
<input type="text" name="txtEstado" id="txtEstado" value="Digite a UF aqui" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Digite a UF aqui';}">
<input type="submit" id="Pesquisar" value="Pesquisar">
</form>
</body>
</html>
Código: Selecionar todos
<?
$txtEstado = $_POST["txtEstado"];
$dsn = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME']).";";
$conn= odbc_connect($dsn,"","");
if(!$conn)
{ exit("conexao falhou: ".odbc_errormsg()); }
$sql="SELECT * FROM clientes WHERE estado = '$txtEstado'";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Nome</th>";
echo "<th>Telefone</th></tr>";
while (odbc_fetch_row($rs))
{
$compname=odbc_result($rs,"Nome");
$conname=odbc_result($rs,"Telefone");
echo "<tr><td>$compname</td>";
echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
Usando tabelas dBase com PHP
Enviado: 28 Ago 2013 01:20
por cjp
Entendi, meu caro.
Mas eu devo estar fazendo algo errado ao adaptar pro que preciso, pois está sumindo a tela depois de clicar em Pesquisar.
Minha função ficou assim:
Código: Selecionar todos
<!DOCTYPE html>
<html>
<body>
<form action="filtrar.php" method="post">
<label>Pesquisar Compromisso:</label>
<input type="text" name="Compr" id="Compr" value="Digite aqui parte do texto procurado" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Digite aqui parte do texto procurado';}">
<input type="submit" id="Pesquisar" value="Pesquisar">
</form>
</body>
</html>
<?
$txtEstado = $_POST["Compr"];
$dsn = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME']).";";
$conn= odbc_connect($dsn,"","");
if(!$conn)
{ exit("conexao falhou: ".odbc_errormsg()); }
$sql="SELECT * FROM agcom WHERE compr = '$txtEstado'";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Data Compromisso Campo Hora Vínculo</th></tr>";
while (odbc_fetch_row($rs))
{
echo "<tr><td>".odbc_result($rs, "data")."</td></tr>";
echo "<tr><td>".odbc_result($rs, "compr")."</td></tr>";
echo "<tr><td>".odbc_result($rs, "campo")."</td></tr>";
echo "<tr><td>".odbc_result($rs, "hora")."</td></tr>";
echo "<tr><td>".odbc_result($rs, "vinculo")."</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
Um primeiro problema é que, antes mesmo de fazer a pesquisa, já está aparecendo todos os campos da base.
Mas o pior é que, depois de clicar em Pesquisar, o site simplesmente fecha, abrindo a página inicial do browser, sem nenhuma informação.
O que eu fiz errado?
Usando tabelas dBase com PHP
Enviado: 29 Ago 2013 13:18
por rochinha
Amiguinho,
Esqueci de dizer que o trecho que estiver entre de "<?" e "?>" é o conteúdo de
filtrar.php que deve ser salvo em separado.
Sendo o conteúdo de
filtrar.php:
Veja que acrescentei a sigla
php que para mim funcionou sem e com ela.
Usando tabelas dBase com PHP
Enviado: 30 Ago 2013 00:57
por cjp
Resolveu a parte de estar aparecendo junto e também a parte do erro de fechar o site.
Mas ainda não está filtrando a base; estão aparecendo todos os campos da base, independentemente do que eu digite na pesquisa.
O que eu ainda estou fazendo errado?
Minha função está assim:
Código: Selecionar todos
<!DOCTYPE html>
<html>
<body>
<form action="filtrar.php" method="post">
<label>Pesquisar Compromisso:</label>
<input type="text" name="Compr" id="Compr" value="Digite aqui parte do texto procurado" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Digite aqui parte do texto procurado';}">
<input type="submit" id="Pesquisar" value="Pesquisar">
</form>
</body>
</html>
E o filtrar.php está assim:
Código: Selecionar todos
<?
$txtEstado = $_POST["Compr"];
$dsn = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME']).";";
$conn= odbc_connect($dsn,"","");
if(!$conn)
{ exit("conexao falhou: ".odbc_errormsg()); }
$sql="SELECT * FROM agcom WHERE compr = '$txtEstado'";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Data Compromisso Campo Hora Vínculo</th></tr>";
while (odbc_fetch_row($rs))
{
echo "<tr><td>".odbc_result($rs, "data")."</td></tr>";
echo "<tr><td>".odbc_result($rs, "compr")."</td></tr>";
echo "<tr><td>".odbc_result($rs, "campo")."</td></tr>";
echo "<tr><td>".odbc_result($rs, "hora")."</td></tr>";
echo "<tr><td>".odbc_result($rs, "vinculo")."</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
Usando tabelas dBase com PHP
Enviado: 30 Ago 2013 21:07
por filizola
name="txtEstado" id="txtEstado" e nao name="compr" id="compr"
Usando tabelas dBase com PHP
Enviado: 30 Ago 2013 21:37
por cjp
Continua na mesma, meu amigo. Ainda não resolveu.
De fato eu havia alterado o exemplo, pois achei que era pra colocar o nome do campo da base, mas agora coloquei de volta como estava, e não resolveu.
Usando tabelas dBase com PHP
Enviado: 31 Ago 2013 10:13
por Toledo
Amigo, tenta o seguinte:
Código: Selecionar todos
$sql="SELECT * FROM agcom WHERE compr = '".$txtEstado."'";
Abraços,
Usando tabelas dBase com PHP
Enviado: 02 Set 2013 00:32
por cjp
Ainda não resolveu. Continua aparecendo todos os campos da base após teclar em Pesquisar.
Usando tabelas dBase com PHP
Enviado: 02 Set 2013 02:18
por rochinha
Amiguinho,
Quando se trata de SQL, sentenças como: SP, Sp, sP ou sp são totalmente diferentes.
Se voce tenta pesquisar em uma base conteúdo em minusculas usando critica em maiúsculas não obterá exito.
Tem sim algum erro na sentença SQL para isto na linha abaixo do
$sql="SELECT * FROM agcom .../b] coloque uma linha:
Para visualizar o resultado do comando. Se voce está filtrando o erro acontece se nada é mostrado. Se esta aparecendo tudo é porque satisfaz o filtro.
Outra coisa que voce deve diferenciar são as nomenclaturas, campos, registros e conteúdos são coisas diferentes.
Campos são as células que possuem o conteúdo.
registros são o conjunto de campos.
Então o que voce está vendo é: Todos os registros com conteúdos dos campos
data,compr,campo,hora,vinculo.
Use algum aplicativo de visualizção de .DBF como DBFViewer2000, WinDBU, DBU, ou outro e veja o conteúdo do campo do filtro se está em maiúsculas ou minúsculas e forme seu filtr a partir do que ver.