Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Estou começando a programar em PHP e peguei um codigo e adaptei para este abaixo, porém recebo a seguinte mensagem de erro;
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%' ORDER BY cadastro_id DESC' at line 5
Estou utilizando Banco de dados Mysql
Abaixo segue o codigo ;
<html>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar">
<select name="tabela" id="tabela">
<option value="cadastro_id">ID
<option value="cadastro_telefone">CLI ID
<option value="cadastro_relac">ID Relacionado
<option value="cadastro_endereco">Logradouro
<option value="cadastro_nome_cliente">Cliente
<option value="cadastro_status">Status do Pedido
<input type="text" name="palavra"/>
<input type="submit" value="Buscar"/>
</html>
<?php
$host = "localhost"; // Host do Mysql
$user = ""; // Usuário do Mysql
$pass = ""; // Senha do Mysql
$banco = ""; // Nome do Banco no Mysql
$palavra = $_POST['palavra'];
$tabela = $_POST['tabela'];
$con = mysql_connect($host,$user,$pass);
$db = mysql_select_db($banco,$con);
$qr = "
SELECT cadastro.cadastro_relac, cadastro.cadastro_id, cadastro.cadastro_status, cadastro.cadastro_telefone, cadastro.cadastro_nome_cliente, cadastro.cadastro_endereco, cadastro.cadastro_cidade, historico.historico_descricao_status, updown.updown_id_anterior
FROM cadastro
INNER JOIN historico ON cadastro.cadastro_id = historico.cadastro_id
INNER JOIN updown ON cadastro.cadastro_id = updown.cadastro_id
WHERE cadastro.$tabela LIKE '%".$palavra."%' ORDER BY cadastro_id DESC"
;
$sql = mysql_query($qr) or die(mysql_error());
$total = mysql_num_rows($sql) ;
echo "<center><b>Sua Busca retornou '$total' resultado(s).</b></center>";
echo "<table border=1 cellspacing=0 cellpadding=1 bordercolor=#CFCFCF>";
echo "<tr>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>ID Ant.</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>ID Atual</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>ID Relac.</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Status</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>ID CLI</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Cliente</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Logradouro</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Cidade</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Status</font></b></td>
<tr>"; echo "<tr>";
echo " <td align=center><font size=1 face=Verdana>$r[updown_id_anterior]</font></td>
<td align=center><font size=1 face=Verdana><a href=editar.php?g=$r[cadastro_id] target=_blank>$r[cadastro_id]</a></font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_relac]</font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_status]</font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_telefone]</font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_nome_cliente]</font></td>
<td align=left><font size=1 face=Verdana>$r[cadastro_endereco]</font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_cidade]</font></td>
<td align=center><font size=1 face=Verdana>$r[historico_descricao_status]</font></td>
";
echo "</tr>";
}
echo "</table>";
?>
Agradeço desde já as ajudas que virão.
Obrigado pela rapida resposta.
a string $tabela representa os campos que estou pesquisando, estes são escolhidos de acordo com o form.
Ja tentei colocar uma unica tabela e deu o mesmo erro.
Troque:
$qr = "
SELECT cadastro.cadastro_relac, cadastro.cadastro_id, cadastro.cadastro_status, cadastro.cadastro_telefone, cadastro.cadastro_nome_cliente, cadastro.cadastro_endereco, cadastro.cadastro_cidade, historico.historico_descricao_status, updown.updown_id_anterior
FROM cadastro
INNER JOIN historico ON cadastro.cadastro_id = historico.cadastro_id
INNER JOIN updown ON cadastro.cadastro_id = updown.cadastro_id
WHERE cadastro.$tabela LIKE '%".$palavra."%' ORDER BY cadastro_id DESC"
;
Por:
$qr = "SELECT cadastro.cadastro_relac, cadastro.cadastro_id, cadastro.cadastro_status, cadastro.cadastro_telefone, cadastro.cadastro_nome_cliente, cadastro.cadastro_endereco, cadastro.cadastro_cidade, historico.historico_descricao_status, updown.updown_id_anterior
FROM cadastro
INNER JOIN historico ON cadastro.cadastro_id = historico.cadastro_id
INNER JOIN updown ON cadastro.cadastro_id = updown.cadastro_id
WHERE cadastro.$tabela LIKE '%$palavra%' ORDER BY cadastro_id DESC";
Dê um echo em $qr e coloque aqui o resultado.
Fiz o seguinte;
Peguei o codigo HTML que tem o form e criei uma nova pagina, em action direcionei para outra pagina e funcionou
Quando os codigos estao na mesma pagina da esse erro.
Eles estão dando erro porque na realidade você não está verificando se o formulário foi enviado....
<html>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar">
<select name="tabela" id="tabela">
<option value="cadastro_id">ID
<option value="cadastro_telefone">CLI ID
<option value="cadastro_relac">ID Relacionado
<option value="cadastro_endereco">Logradouro
<option value="cadastro_nome_cliente">Cliente
<option value="cadastro_status">Status do Pedido
<input type="text" name="palavra"/>
<input type="submit" value="Buscar"/>
</html>
<?php
if(sizeof($_POST) > '0'){
$host = "localhost"; // Host do Mysql
$user = ""; // Usuário do Mysql
$pass = ""; // Senha do Mysql
$banco = ""; // Nome do Banco no Mysql
$palavra = $_POST['palavra'];
$tabela = $_POST['tabela'];
$con = mysql_connect($host,$user,$pass);
$db = mysql_select_db($banco,$con);
$qr = "
SELECT cadastro.cadastro_relac, cadastro.cadastro_id, cadastro.cadastro_status, cadastro.cadastro_telefone, cadastro.cadastro_nome_cliente, cadastro.cadastro_endereco, cadastro.cadastro_cidade, historico.historico_descricao_status, updown.updown_id_anterior
FROM cadastro
INNER JOIN historico ON cadastro.cadastro_id = historico.cadastro_id
INNER JOIN updown ON cadastro.cadastro_id = updown.cadastro_id
WHERE cadastro.$tabela LIKE '%".$palavra."%' ORDER BY cadastro_id DESC"
;
$sql = mysql_query($qr) or die(mysql_error());
$total = mysql_num_rows($sql) ;
echo "<center><b>Sua Busca retornou '$total' resultado(s).</b></center>";
echo "<table border=1 cellspacing=0 cellpadding=1 bordercolor=#CFCFCF>";
echo "<tr>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>ID Ant.</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>ID Atual</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>ID Relac.</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Status</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>ID CLI</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Cliente</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Logradouro</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Cidade</font></b></td>
<td align=center bgcolor=#000080><b><font size=2 face=Arial color=white>Status</font></b></td>
<tr>";
while($r = mysql_fetch_array($sql)){
echo "<tr>";
echo " <td align=center><font size=1 face=Verdana>$r[updown_id_anterior]</font></td>
<td align=center><font size=1 face=Verdana><a href=editar.php?g=$r[cadastro_id] target=_blank>$r[cadastro_id]</a></font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_relac]</font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_status]</font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_telefone]</font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_nome_cliente]</font></td>
<td align=left><font size=1 face=Verdana>$r[cadastro_endereco]</font></td>
<td align=center><font size=1 face=Verdana>$r[cadastro_cidade]</font></td>
<td align=center><font size=1 face=Verdana>$r[historico_descricao_status]</font></td>
";
echo "</tr>";
}
echo "</table>";
}
?>Agradeço muito a sua ajuda.
Me mande por MP sua conta paypal para que eu te envie algo por me ajudar.
>
Agradeço muito a sua ajuda.
Me mande por MP sua conta paypal para que eu te envie algo por me ajudar.
Não é necessário, toda ajuda aqui é voluntária
Não é necessário, toda ajuda aqui é voluntária
Faço questão neste caso.
Aparentemente o problema está ai:
WHERE cadastro.$tabela
Troque isto por:
WHERE cadastro.nome_da_coluna_que_vc_quer_consultar
E veja se o erro some.