Ir para conteúdo

POWERED BY:

Arquivado

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

Danv

Erro na consulta ???

Recommended Posts

Ola pessoal....

 

Não estou conseguindo entender por que esta dando este 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 'AND excluido=N AND '%%' LIKE '%%' ORDER BY nome ASC LIMIT 0,20' "

 

segue o codigo onde é realizada a consulta:

 

<?php  require_once('config.php'); ?><?php  require_once('funcoes.php'); ?><?php  require_once('conn.php'); ?><?php...//PAGINAÇÃO COMEÇA AQUI$page_count = 20; //resultados por pagina$cut_off = 10; //pages displayed at onceif($_GET['start']==""){if(!isset($start))$start = 0; //não toque aqui}else{if(!isset($start))$start = $_GET['start']; }mysql_select_db($database_conn, $conn);$query_rsUsuarios = "SELECT * FROM nivel WHERE id_rh=".$id_rh." AND nivel=".$nivel." AND excluido='N' AND ".$vcampo." LIKE '%".$_POST['pesquisa']."%' ORDER BY nome ASC LIMIT ".$start.",".$page_count."";$rsUsuarios = mysql_query($query_rsUsuarios, $conn) or die(mysql_error());$row_rsUsuarios = mysql_fetch_assoc($rsUsuarios);$totalRows_rsUsuarios = mysql_num_rows($rsUsuarios);mysql_select_db($database_conn, $conn);$query_rsUsuariosN = "SELECT * FROM nivel WHERE id_rh=".$id_rh." AND nivel=".$nivel." AND excluido='N'";$rsUsuariosN = mysql_query($query_rsUsuariosN, $conn) or die(mysql_error());$row_rsUsuariosN = mysql_fetch_assoc($rsUsuariosN);$totalRows_rsUsuariosN = mysql_num_rows($rsUsuariosN);function pagination($page_count,$totalRows_rsUsuariosN,$start,$PHP_SELF,$cut_off){$newnum = $totalRows_rsUsuariosN / $page_count;$newnum = ceil($newnum);if(!isset($page))$page = 1;if($newnum >= 2){echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" bgcolor=\"#eeeeee\" align=\"center\"><tr><td style=\"border: 1px solid #999999; font-family: Verdana; font-size: 11px;\" nowrap>";if(isset($start) && $start != 0){echo "«  <a href=\"$PHP_SELF?start="; echo $start - $page_count; echo "\">anterior</a> ";}else{echo "« anterior ";}$total_pages = $newnum;if($newnum > $cut_off)$newnum = $cut_off;$cur_page = ($start + $page_count) / $page_count;if($cur_page > $cut_off)$page = $cur_page - $cut_off + 1;if($cur_page > $cut_off){$start_page = $page * $page_count - $page_count;}else{$start_page = 0;}for($i=0; $i<$newnum;$i++){	if($start == ($page * $page_count) - $page_count){	echo "<b><font size=\"3\" color=\"#666666\">$page</font></b> ";	}	else{	echo "<a href=\"$PHP_SELF?start=$start_page\">$page</a> ";	}$page++;$start_page = $start_page + $page_count;}if($newnum >= 2 && $cur_page < $newnum && $cur_page <= $total_pages){echo " <a href=\"$PHP_SELF?start="; echo $start + $page_count; echo "\">próxima</a> »";}elseif($cur_page >= $total_pages){echo " próxima »";}else{echo " <a href=\"$PHP_SELF?start="; echo $start + $page_count; echo "\">próxima</a> »";}echo "</td></tr></table><br /><div align=\"center\" style=\"font-family: Verdana; font-size: 11px; color: #666666;\">Página $cur_page de $total_pages<div>";}//if any results at top}//function?><HTML>...
Engraçado é que eu utilizo em outra sessão e funciona normalmente....

 

Bom, a primeira consulta é esta...

 

$query_rsUsuarios = "SELECT * FROM clientes WHERE id_rh=".$id_rh." AND id_fr=".$franquia." AND excluido=".$excluido." AND ".$vcampo." LIKE '%".$_POST['pesquisa']."%' ORDER BY nome ASC LIMIT ".$start.",".$page_count."";

 

onde esta dando o erro.... mas porque??

 

Não estou vendo nada errado ae...

 

Inclusive encontrei este condigo de paginação na própria iMasters, muito bom.

 

A propósito, Feliz Ano Novo pessoal.

 

Onde o erro ocorre é indicado... mas não estendo porque.

 

Bom, se alguem poder me dar uma força ae, valeu pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro de sintaxe. Você está utilizando aspas duplas dentro de aspas duplas. Olhe abaixo:

 

$query_rsUsuarios = "SELECT * FROM clientes WHERE id_rh=".$id_rh." AND id_fr=".$franquia." AND excluido=.$excluido." AND ".$vcampo." LIKE '%".$_POST['pesquisa']."%' ORDER BY nome ASC LIMIT ".$start.",".$page_count."";

Dentro de aspas duplas só se usa aspas simples. Tente utilizar o exemplo abaixo:

 

$query_rsUsuarios = "SELECT * FROM clientes WHERE id_rh='.$id_rh.' AND id_fr='.$franquia.' AND excluido='.$excluido.' AND '.$vcampo.' LIKE '%.$_POST['pesquisa'].%' ORDER BY nome ASC LIMIT '.$start.', '.$page_count.'";

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Engraçado... meus outros códigos não dão este erro....

 

Mesmo assim testei da forma como indicou mas continua dando erro...

 

Essa de não "poder" utilizar aspas duplas dentro de aspas duplas não entendi.... estou apenas concatenando...

 

fiz a seguinte alteração:

 

$query_rsUsuarios = "SELECT * FROM clientes WHERE id_rh=".$id_rh." AND id_fr=".$franquia." AND excluido=.$excluido." AND ".$vcampo." LIKE '%".$_POST['pesquisa']."%' ORDER BY nome ASC LIMIT ".$start.",".$page_count."";

$query_rsUsuarios = "SELECT * FROM clientes WHERE id_rh=".$id_rh." AND excluido=.$excluido." AND ".$vcampo." LIKE '%".$_POST['pesquisa']."%' ORDER BY nome ASC LIMIT ".$start.",".$page_count."";

Simplesmente exclui um filtro.... o AND id_fr = ".$franquia." e funciona normalmente, mas eu preciso deste filtro....

 

Bom, valeu grldesign, mas não deu muito certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$query_rsUsuarios = "SELECT * FROM clientes WHERE id_rh='$id_rh' AND excluido='$excluido' AND vcampo LIKE '%$_POST[pesquisa]%' ORDER BY nome ASC LIMIT $start,$page_count";

Tenta assim Imagem Postada

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.