Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, ao fazer o SELECT se eu tenho alguma palavra acentuada por exemplo não me retorna resultado algum.
Ja tentei de várias formas mais nada acontece.
Segue o codigo.
<?php
require 'conexao.php';
$ipp = 10;
$pagina = (isset($_POST['pagina'])) ? (int)$_POST['pagina'] : 0;
$itens = $pagina * $ipp;
$sql = sprintf("SELECT *FROM lojas WHERE status = 1 LIMIT %d OFFSET %d", $ipp, $itens);
$sth = $conn->prepare($sql);
$sth->execute();
$total = $sth->rowCount();
if($total > 0){
$retorno = array();
while($total = $sth->fetch(PDO::FETCH_ASSOC)){
$retorno[] = $total;
}
response(array("err"=>false, "inicio"=>$itens + 1, "fim"=>$itens + $sth->rowCount(), "itensPorPagina"=>$ipp, "post"=>$retorno, "pagina"=>$pagina));
}else{
response(array('err'=>true));
}
function response($resp){
header("Content_Type: application/json");
echo json_encode($resp);
}
?>
Agradeço de coração a quem ajudar!! s2>
16 horas atrás, Philippe Luis disse:
Galera, ao fazer o SELECT se eu tenho alguma palavra acentuada por exemplo não me retorna resultado algum.
Ja tentei de várias formas mais nada acontece.
Segue o codigo.
<?php
require 'conexao.php';
$ipp = 10;
$pagina = (isset($_POST['pagina'])) ? (int)$_POST['pagina'] : 0;
$itens = $pagina * $ipp;
$sql = sprintf("SELECT *FROM lojas WHERE status = 1 LIMIT %d OFFSET %d", $ipp, $itens);
$sth = $conn->prepare($sql);
$sth->execute();
$total = $sth->rowCount();
if($total > 0){
$retorno = array();
while($total = $sth->fetch(PDO::FETCH_ASSOC)){
$retorno[] = $total;
}
response(array("err"=>false, "inicio"=>$itens + 1, "fim"=>$itens + $sth->rowCount(), "itensPorPagina"=>$ipp, "post"=>$retorno, "pagina"=>$pagina));
}else{
response(array('err'=>true));
}
function response($resp){
header("Content_Type: application/json");
echo json_encode($resp);
}
?>
Agradeço de coração a quem ajudar!! s2
Eu tive um problema uma vez quando eu colocava aspa no campo e dava erro, então eu coloquei um filtro de caracteres especiais e ta funcionando sem dar problema nenhum agora. Tenta isso aqui:
$pesquisa = filter_input(INPUT_POST, 'pagina', FILTER_SANITIZE_SPECIAL_CHARS);
$pagina = (isset($pesquisa)) ? (int)$pesquisa : 0;No arquivo conexao.php o PDO ta sendo instanciado com charset utf8 ?
PHP < 5.3.6
$conn = new PDO('mysql:host=localhost;dbname=world', 'my_user', 'my_pass', array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
));
**PHP >= 5.3.6**
$conn = new PDO('mysql:host=localhost;dbname=world;charset=utf8', 'my_user', 'my_pass');Galera nada resolveu meu problema, o estranho que não me retorna nenhum erro, mas também não mostra os dados
O mais estranho é que caracteres especiais como: ?,!,@,%. Retornam perfeitamente.
Agora, palavras acentuadas nao me geram erros, mas também não exibe o resultado.
tente:
while($total = $sth->fetch(PDO::FETCH_ASSOC)){
$retorno[] = array_map('utf8_encode', $total);
}
e
function response($resp){
header("Content-type: application/json; charset=utf-8");
echo json_encode($resp);
}>
Agora, Draco Malfoy disse:
tente:
while($total = $sth->fetch(PDO::FETCH_ASSOC)){
$retorno[] = array_map('utf8_encode', $total);
}
e
function response($resp){
header("Content-type: application/json; charset=utf-8");
echo json_encode($resp);
}
Coloquei os dois mais agora tenho que tratar o erro pois a palavra vem unicode
: M\u00e9dico
Ajuda pliss
verifica a codificação da tabela. ela deve estar em utf8