Ir para conteúdo

POWERED BY:

Arquivado

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

djtuca2

Erro de Sintaxe - Mysql - Codigo de Pesquisa

Recommended Posts

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>";	
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 desde já as ajudas que virão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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.