Ir para conteúdo

POWERED BY:

Arquivado

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

Daiana Mowry

Erro em paginação na página categoria - PHP

Recommended Posts

Luís, você acha que desse jeito não vai dar problema? Agora estou com erro no search.php.

 

Segue os códigos:

 

FUNÇÕES.PHP

 

<?php function get_search(){

include"Connections/config.php";
$posts = $_POST['p'];
$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$pag = "(isset($_GET[pag]))";
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}

$maximo = '2'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$sql = 'SELECT * FROM d_imoveis WHERE imovelStatus = :imovelStatus AND imovelTermino >= :dataVal AND imovelTitulo LIKE :imovelTitulo ORDER BY imovelId DESC LIMIT '.$inicio.','.$maximo;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':imovelTitulo','%'.$posts.'%',PDO::PARAM_STR);
$query->bindValue(':imovelStatus',$imovelStatus,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$negocio.'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>

 

SEARCH.PHP

 

<div id="pagina">

<h1>Categoria</h1>
<table width="100%" border="0" cellpadding="3" cellspacing="2" bordercolor="#666666";>
<tr style="color:#005789; font-variant:small-caps; font:14px 'Trebuchet MS', Arial, Helvetica, sans-serif;">
<td height="30" align="center" bgcolor="#E0E0E0"><strong>Ilustração:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Negócio:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Dormitórios:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Data do Anúncio:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Acessar:</strong></td>
</tr>
<?php get_search();?>
</table>

<div class="paginator">
<?php
$posts = $_POST['p'];
$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$pag = "(isset($_GET[pag]))";
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}

$maximo = '2'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;

$sql_res = mysql_query("SELECT * FROM d_imoveis WHERE imovelStatus = '$imovelStatus' AND imovelTermino >= '$dataVal' AND imovelTitulo LIKE '$imovelTitulo' ORDER BY imovelId DESC");

if( !$sql_res ) die( mysql_error() );

$total = mysql_num_rows($sql_res);
$links = '1';

$paginas = ceil($total/$maximo);
$links = '1'; //QUANTIDADE DE LINKS NO PAGINATOR

echo "<a href=\"index.php?pg=search&pag=1\">Primeira Página</a>   ";

for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?pg=search&pag=$i\">$i</a>   ";
}
}echo "$pag    ";

for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?pg=search&pag=$i\">$i</a>   ";
}
}
echo "<a href=\"index.php?pg=search&pag=$paginas\">Última página</a>   ";
?>
</div>
</div><!--paginator-->

 

Quando coloco no campo pesquisar uma palavra que não tem no título, ele até retorna vazio (certo). Mas ao clicar nos botões primeira página e próxima página ele retorna imóveis. No caso era pra retornar vazio, já que a palavra pesquisada não existe em numa descrição de imóvel no banco.

 

Por favor, me ajude nessa também!

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de saber se conhece Orientado ao O objeto - PHP com estrutura MVC, por que preciso resolver um problema no meu projeto.

 

Estou tentando fazer uma paginação usando o meu listar do projeto,mais não estou conseguindo, segue em anexo o fluxo, se puder me ajudar ficarei grato.

 

Se puder me ajudar me mostre onde estou errando e qual pode ser a solução, estou te mandando todo o fluxo da paginação, ai vc me diz onde esta errado neste fluxo.
Na visão:
Estou passando por parametro a variavel $inicio e $quantidade para controle pela variavel $listar:
<?php
include ("C:/wamp/www/dgoo/controle/Usuario_controle.php");
$usuarios = new Usuario_controle();
$listar = $usuarios->listaUsuarios($inicio,$quantidade);
if (isset($_POST['s'])){
$listar = $usuarios->buscaUsuarios($_POST['s']);
}else{
$listar=$usuarios->listaUsuarios($inicio,$quantidade);
}
?>
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
// Pegar a página atual por GET
$pg = (isset($_GET['pg']))? $_GET['pg']:null;
if(isset($pg)){
$page = $pg;
}else{
$page = 1;
}
$quantidade = 5;
$inicio = ($page * $quantidade) - $quantidade;
$total_registros = sizeof($listar);
$Paginas = ceil($total_registros/$quantidade);
$links = 1;
echo "<a href='index.php?page=1'>Primeira Pagina</a>";
for($i = $page-$links; $i <= $page; $i++){
if($i <= 0){
}else{
echo " <a href='index.php?page=".$i."'>".$i."</a> ";
}
}
echo "<a href=#>$page</a>";
for($i = $page+1; $i <= $page+$links; $i++){
if($i > $Paginas){
}else{
echo " <a href='index.php?page=".$i."'>".$i."</a> ";
}
}
echo "<a href='index.php?page=".$Paginas."'>Ultima Pagina</a>";
?>
------------------------------------------------------controle---------------------------------------------------------------------------------------------------------------------------------------------
Na controle eu estou usando a mesma função de listarUsuarios, estou recebendo por parametro a variavel $inicio e $quantidade.
function listaUsuarios($inicio,$quantidade){
Conexao::conecta();
$lista = new Usuario_dao();
$usuarios = $lista->listaUsuarios($inicio,$quantidade);
return $usuarios;
}
-------------------------------------------------------dao--------------------------------------------------------------------------------------------------------------------------------------------------------
Na dão estou com problemas!
Preciso de sua ajuda no que fazer nesta função, pois estou limitando para listar os 5 primeiros,mas como faço pra que ele traga todos os registros depois,pra dividir em 5 em 5.
function listaUsuarios($inicio,$quantidade) {
//$sql="SELECT * FROM usuario ORDER BY ASC LIMIT $inicio, $quantidade";
$sql = mysql_query("SELECT * FROM usuario ORDER BY ASC LIMIT $inicio, $quantidade");
$result = mysql_query($sql);
$lista = array();
while ($rd=mysql_fetch_array($result)){
$usuario = new Usuario_bean();
$usuario->setId_usuario($rd['id_usuario']);
$usuario->setNome_usuario($rd['nome_usuario']);
$data = implode("/",array_reverse(explode ("-",$rd['data_usuario'])));
$usuario->setData_usuario($data);
$usuario->setEmail_usuario($rd['e_mail_usuario']);
$usuario->setTelefone_usuario($rd['telefone_usuario']);
$lista[] = $usuario;
}
return $lista;
}
Se puder me ajudar me mostra qual comando devo colocar dão ou como é feito na dao pra que ele fusque os dados 2 vezes,eu estava fazendo errado tinha feito uma nova função, mas vi em alguns exemplos que uso a mesma função de listar, dia pra frente ficou muito confuso, e esta tento muitos eros:
( ! ) Notice: Undefined variable: inicio in C:\wamp\www\dgoo\index.php on line 6 Call Stack # Time Memory Function Location 1 0.0697 150264 {main}( ) ..\index.php:0
( ! ) Notice: Undefined variable: quantidade in C:\wamp\www\dgoo\index.php on line 6 Call Stack # Time Memory Function Location 1 0.0697 150264 {main}( ) ..\index.php:0
( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\dgoo\modelo\dao\Usuario_dao.php on line 32 Call Stack # Time Memory Function Location 1 0.0697 150264 {main}( ) ..\index.php:0 2 0.2123 199504 Usuario_controle->listaUsuarios( ) ..\index.php:6 3 0.3328 205736 Usuario_dao->listaUsuarios( ) ..\Usuario_controle.php:44 4 0.4133 206192 mysql_fetch_array ( ) ..\Usuario_dao.php:32
( ! ) Notice: Undefined variable: inicio in C:\wamp\www\dgoo\index.php on line 14 Call Stack # Time Memory Function Location 1 0.0697 150264 {main}( ) ..\index.php:0
( ! ) Notice: Undefined variable: quantidade in C:\wamp\www\dgoo\index.php on line 14 Call Stack # Time Memory Function Location 1 0.0697 150264 {main}( ) ..\index.php:0
( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\dgoo\modelo\dao\Usuario_dao.php on line 32 Call Stack # Time Memory Function Location 1 0.0697 150264 {main}( ) ..\index.php:0 2 0.4140 206096 Usuario_controle->listaUsuarios( ) ..\index.php:14 3 0.4143 206112 Usuario_dao->listaUsuarios( ) ..\Usuario_controle.php:44 4 0.4145 206328 mysql_fetch_array ( ) ..\Usuario_dao.php:32

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!

Tudo bom?

Gostaria de saber se pode me ajudar neste exemplo,também de paginação, mas em estrutura MVC .

 

Na visao:

<?php
include ("dgoo/controle/Usuario_controle.php");
$pg = (isset($_GET['pg']))? $_GET['pg']:null;
if(isset($pg)){
$page = $pg;
}else{
$page = 1;
}
$quantidade = 5;
$inicio = ($page * $quantidade) - $quantidade;
$usuarios = new Usuario_controle();
$listar = $usuarios->listaUsuarios($inicio,$quantidade);
if (isset($_POST['s'])){
$listar = $usuarios->buscaUsuarios($_POST['s']);
}else{
$listar=$usuarios->listaUsuarios($inicio,$quantidade);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cadastro de Usuarios</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php include_once("includes/cabecalho.php"); ?>
<div id="conteudo">
<div id="left">
<div id="lista">
<h1><a href=#"">Lista de Todos os usuario</a></h1>
<h5>Cadastro | CDT | UnB </h5>
<table border='0' id="alter">
<tr class="dif">
<td>Nome</td>
<td>Data</td>
<td>E-mail</td>
<td>Telefone</td>
<td>Editar</td>
<td>Excluir</td>
</tr>
<?php
foreach ($listar as $indice => $r) {
echo "<tr class='".(($indice %2 == 0)?'alterZ':'alterB')."'>";
echo "<td>".$r->getNome_usuario()."</a></td>";
echo "<td>".$r->getData_usuario()."</td>";
echo "<td>".$r->getEmail_usuario()."</td>";
echo "<td>".$r->getTelefone_usuario()."</td>";
echo "<td><a href='visao/cadastro_usuario.php?id_usuario=".$r->getId_usuario()."'>Editar </a></td>";
echo "<td><a href='visao/cadastro_usuario_exe.php?excluir=1&id_usuario=".$r->getId_usuario()."'>Excluir </a></td>";
echo "</tr>";
// A presença da interrogação indica o fim do endereço e o início da declaração dos nossos valores que serão passados.
}
?>
</table>
<?php
$inicio = ($page * $quantidade) - $quantidade;
$total_registros = sizeof($listar);
$Paginas = ceil($total_registros/$quantidade);
$links = 1;
echo "<a href='index.php?page=1'>Primeira Pagina</a>";
for($i = $page-$links; $i <= $page; $i++){
if($i <= 0){
}else{
echo " <a href='index.php?page=".$i."'>".$i."</a> ";
}
}
echo "<a href=#>$page</a>";
for($i = $page+1; $i <= $page+$links; $i++){
if($i > $Paginas){
}else{
echo " <a href='index.php?page=".$i."'>".$i."</a> ";
}
}
echo "<a href='index.php?page=".$Paginas."'>Ultima Pagina</a>";
?>
</div>
</div>
<?php include_once("includes/lateral.php"); ?>
</div>
<?php include_once("includes/rodape.php"); ?>
</body>
</html>
Na DAO:
function listaUsuarios($inicio=0, $quantidade=0) {
$limit='';
if ($inicio && $quantidade)
$limit = "LIMIT" .$inicio."," .$quantidade;
$sql = mysql_query("SELECT * FROM usuario ORDER BY ASC" .$limit);
//var_dump($sql);exit();
$result = mysql_query($sql);
$lista = array();
while ($rd=mysql_fetch_array($result)){
$usuario = new Usuario_bean();
$usuario->setId_usuario($rd['id_usuario']);
$usuario->setNome_usuario($rd['nome_usuario']);
$data = implode("/",array_reverse(explode ("-",$rd['data_usuario'])));
$usuario->setData_usuario($data);
$usuario->setEmail_usuario($rd['e_mail_usuario']);
$usuario->setTelefone_usuario($rd['telefone_usuario']);
$lista[] = $usuario;
}
return $lista;
}

 

 

Na controle:

 

function gravaUsuario(){
$this->setUsuario();
Conexao::conecta();
$grava = new Usuario_dao();
$mensagem = $grava->gravaUsuario($this->usuarios);
return $mensagem;
}

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.