Por favor, veja se estou fazendo correto: tenho dois arquivos; o primeiro é o agcom.php, que está com o seguinte conteúdo:
<html>
<body>
<form action="filtrar.php" method="post">
<label>Pesquisar Compromisso:</label>
<input type="text" name="filtro" id="filtro" 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>
Neste, como teste, estou digitando "FAZER" (sem as aspas e com maiúsculas), que é parte de alguns campos da base.
O outro arquivo é o filtrar.php, que está com o seguinte conteúdo:
<?
$txtFiltro = $_GET["filtro"];
$txtCategoria = $_GET["categoria"];
$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 LIKE '%".$txtFiltro."%' and vinculo LIKE '%".$txtCategoria."%'";
echo $sql;
echo $dns;
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
echo "<table BORDER=1><tr>";
echo "<th>data</th>";
echo "<th>compr</th></tr>";
while (odbc_fetch_row($rs))
{
$compname=odbc_result($rs,"data");
$conname=odbc_result($rs,"compr");
echo "<tr><td>$compname</td>";
echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</tr></table>";
?>
Uma coisa que não entendi neste é a referência a txtcategoria, que aparentemente está filtrando o campo vÃnculo, sendo que este não precisaria ser filtrado. Testei tirar esta parte, deixando a linha assim:
$sql="SELECT * FROM agcom WHERE compr LIKE '%".$txtFiltro."%';
Mas daà está dando o seguinte erro:
PHP Parse error: syntax error, unexpected T_STRING in C:\Inetpub\Wwwroot\inaciobr\filtrar.php on line 14
A linha 14, indicada no erro, está assim:
{exit("Error in SQL");}
Em suma, ainda não estou conseguindo fazer o filtro funcionar.