estou iniciando na área, já fiz cursos, e agora estou tentando me aprofundar, além de ler muita coisa, pego alguns scripts para ver na prática o funcionamento das coisas... vamos ao problema..
Tenho os códigos abaixo, um formulário html (carro_psq.html) que passa as informações para tratar no php (carros_psq.php).
Comecei montando com uma pesquisa relacional, e funcionou certinho... agora quando eu simplifiquei, ele não reconhece os filtros... se não insiro nenhum filtro de pesquisa, ele retorna todos os dados do banco de dados, mas com qualquer filtro dá o seguinte erro:
SQLSTATE[42000]: Syntax error or access violation: 1064 Você tem um erro de sintaxe no seu SQL próximo a 'AND sexo ='M'' na linha 2
sendo que varia, as vezes ele fala que é na linha de cima, depois na linha de baixo.. enfim, agora os códigos:
<?php
try
{
//... conexão do bdd...
// cria um estilo para o cabeçalho
$estilo_cabecalho = new TStyle('cabecalho');
$estilo_cabecalho->font_family = 'verdana,sans-serif';
// cria um estilo para os dados
$estilo_dados = new TStyle('dados');
$estilo_dados->font_family = 'arial,verdana,sans-serif';
// define a consulta
$sql = "SELECT id, nome, endereco, bairro, cep, pf_pj, cpf_cnpj, cnh, rg_ie, dt_nascimento, telefone, celular, obs, email FROM clientes";
// detecta filtro por nome do clientes
if (!empty($_REQUEST['clientes']))
{
$client = addslashes($_REQUEST['clientes']);
$sql .= " AND nome like '%{$client}%'";
}
// detecta filtro por sexo
if (!empty($_REQUEST['sexo']))
{
$sexo = addslashes($_REQUEST['sexo']);
$sql .= " AND sexo ='{$sexo}'";
}
// detecta filtro por pf_pj
if (!empty($_REQUEST['pf_pj']))
{
$pf_pj = addslashes($_REQUEST['pf_pj']);
$sql .= " AND pf_pj ='{$pf_pj}'";
}
// executa a instrução SQL
$result = $conn->query($sql);
// instancia objeto tabela
$tabela = new TTable;
// define algumas propriedades da tabela
$tabela->border= 1;
$tabela->style = "border-collapse:collapse";
// instancia uma linha para o cabeçalho
$cabecalho = $tabela->addRow();
// adiciona células (se add lá em cima, insere aqui)
$cabecalho->addCell('Código');
$cabecalho->addCell('Nome');
$cabecalho->addCell('Endereço');
$cabecalho->addCell('Bairro');
$cabecalho->addCell('CEP');
$cabecalho->addCell('Física/Jurídica');
$cabecalho->addCell('CPF/CNPJ');
$cabecalho->addCell('CNH');
$cabecalho->addCell('RG/IE');
$cabecalho->addCell('Aniversário');
$cabecalho->addCell('Telefone');
$cabecalho->addCell('Celular');
$cabecalho->addCell('E-Mail');
$cabecalho->addCell('Observações');
$cabecalho->class = 'cabecalho';
// inicializa variáveis de controle
$colore = FALSE;
// percorre os resultados
foreach ($result as $row)
{
// verifica qual cor irá utilizar para o fundo
$bgcolor = $colore ? '#f5f5f5' : '#e8e8e8';
// adiciona uma linha para os dados
$linha = $tabela->addRow();
$linha->bgcolor = $bgcolor;
$linha->class = 'dados';
// lê a data de nascimento
$dt_nascimento = date_parse($row['dt_nascimento']);
$dt_nascimento = str_pad($dt_nascimento['day'], 2, '0', STR_PAD_LEFT).'/'.
str_pad($dt_nascimento['month'], 2, '0', STR_PAD_LEFT).'/'.
$dt_nascimento['year'];
// adiciona as células
$cell1 = $linha->addCell($row['id']);
$cell2 = $linha->addCell($row['nome']);
$cell3 = $linha->addCell($row['endereco']);
$cell4 = $linha->addCell($row['bairro']);
$cell5 = $linha->addCell($row['cep']);
$cell6 = $linha->addCell($row['pf_pj']);
$cell7 = $linha->addCell($row['cpf_cnpj']);
$cell8 = $linha->addCell($row['cnh']);
$cell9 = $linha->addCell($row['rg_ie']);
$cell10 = $linha->addCell($dt_nascimento);
$cell11 = $linha->addCell($row['telefone']);
$cell12 = $linha->addCell($row['celular']);
$cell13 = $linha->addCell($row['email']);
$cell14 = $linha->addCell($row['obs']);
// define o alinhamento das células
$cell1->align = 'center';
$cell2->align = 'left';
$cell3->align = 'left';
$cell4->align = 'left';
$cell5->align = 'center';
$cell6->align = 'center';
$cell7->align = 'center';
$cell8->align = 'center';
$cell9->align = 'center';
$cell10->align = 'center';
$cell11->align = 'center';
$cell12->align = 'center';
$cell13->align = 'center';
$cell14->align = 'center';
// inverte cor de fundo
$colore = !$colore;
}
$tabela->show();
}
catch (Exception $e)
{
// exibe a mensagem de erro
echo $e->getMessage();
}
?>
To pedindo demais, mas gostaria de saber se alguém vê algum erro de sintaxe no código... pra mim não tá fazendo sentido, mas como meu conhecimento é inicial, nem conta né?!
Question
LillyC
Oi,
estou iniciando na área, já fiz cursos, e agora estou tentando me aprofundar, além de ler muita coisa, pego alguns scripts para ver na prática o funcionamento das coisas... vamos ao problema..
Tenho os códigos abaixo, um formulário html (carro_psq.html) que passa as informações para tratar no php (carros_psq.php).
Comecei montando com uma pesquisa relacional, e funcionou certinho... agora quando eu simplifiquei, ele não reconhece os filtros... se não insiro nenhum filtro de pesquisa, ele retorna todos os dados do banco de dados, mas com qualquer filtro dá o seguinte erro:
SQLSTATE[42000]: Syntax error or access violation: 1064 Você tem um erro de sintaxe no seu SQL próximo a 'AND sexo ='M'' na linha 2
sendo que varia, as vezes ele fala que é na linha de cima, depois na linha de baixo.. enfim, agora os códigos:
Formulário de pesquisa personalizada
Aquivo para tratar os dadosTo pedindo demais, mas gostaria de saber se alguém vê algum erro de sintaxe no código... pra mim não tá fazendo sentido, mas como meu conhecimento é inicial, nem conta né?!
Link to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.