Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago Luna

- PHP + Access

Recommended Posts

:wacko: Ola pessoal,

 

Estou fazendo um sistema muito simples de cadastro de clientes, mas esta dando problema na execução dos comandos.

Exemplo:

 

Codigo:

1 <?php

2 $bd = odbc_connect("marchal","","") or die("Erro na conexão com o Database");

3 $cmd = "SELECT * FROM clientes ORDER BY CLIENTE";

4 $res = odbc_exec($bd, $cmd);

5 ?>

 

Mensagem Erro:

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Driver ODBC para Microsoft Access] Desconhecido,

SQL state 37000 in SQLExecDirect in C:\Inetpub\wwwroot\Marchel\listartodos.php on line 4

 

A linha 2 funciona corretamente. Criei uma fonte de dados chamada "marchal" que aponta para o banco, agora qdo chega na linha 4 da esse erro.

No site inteiro, em toda pãgina que tem algum comando do tipoÇ odbc_exec ou odbc_fetch_row da esse erro.

Alguem sabe me dizer o que faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Alaerte pelos sites indicados.

Fui aos 2, mas o primeiro foi mais direto ao ponto. Pois bem:

Segui exatamente as instruções do site. Funcionou perfeitamente.

Com isso consegui focar mais o proglema. Esse foi o codigo ensinado:

 

<?php

$con = odbc_connect("Access","","") or die("Erro na conexão com o banco de dados. Por favor entre em contato com o adiministrador.");

$sql = odbc_exec($con,"SELECT * FROM tb_teste");

$i=0;

while(odbc_fetch_row($sql)) {

$i++;

echo odbc_result($sql,"id");

echo odbc_result($sql,"nome");

echo odbc_result($sql,"nick");

echo odbc_result($sql,"email");

echo odbc_result($sql,"website");

echo "<br>";

}

?>

 

Funciona. Apliquei no que estou fazendo e funcionou. O problema e que quero fazer uma consulta ordenada por nome e nao usar o *: $sql = odbc_exec($con,"SELECT * FROM tb_teste ORDER BY nome");

 

Quando faço isso ai da o erro que postei acima. E agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim Funciona:

$con = odbc_connect("marchal","","") or die("Erro na conexão com o banco de dados. Por favor entre em contato com o adiministrador.");

$sql = odbc_exec($con,"SELECT * FROM clientes"); //listar todos da tabela clientes sem condições

...

 

Assim NAO Funciona:

$cliente= $_POST["cliente"];

$con = odbc_connect("marchal","","") or die("Erro na conexão com o banco de dados. Por favor entre em contato com o adiministrador.");

$sql = odbc_exec ($con,"SELECT * FROM clientes WHERE CLIENTE LIKE '%$cliente%'"); //listar apenas da tabela clientes o CLIENTE cujo nome foi passado por parametro.

ERRO:Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Driver ODBC para Microsoft Access] Desconhecido, SQL state 37000 in SQLExecDirect in C:\Inetpub\wwwroot\testebd.php on line 5

 

 

Outro exemplo que da erro:

Se eu quiser ordenar por Bairro

$sql = odbc_exec($con,"SELECT * FROM clientes ORDER BY BAIRRO");

ERRO: Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Driver ODBC para Microsoft Access] Desconhecido, SQL state 37000 in SQLExecDirect in C:\Inetpub\wwwroot\testebd.php on line 5

 

O erro ta sempre na linha 5, que é a linha da query. Select * funciona. Select * + order by ou where ... nao funciona. Nao sei mais o q fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você definiu um comprimento para os campos?

 

Se não está difinido, DEFINA.

 

Os campos Text definidos sem um comprimento explícito são o mesmos do campo Memo e podem conter até 2,14 GB de dados de caracteres.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.