Foros del Web » Programando para Internet » PHP »

consulta sobre buscador y paginador de PHP

Estas en el tema de consulta sobre buscador y paginador de PHP en el foro de PHP en Foros del Web. Saludos amigos resulta que tengo un problema con una aplicaion que estoy desarrollando y es que necesito que busque y pagine al tiempo y la ...
  #1 (permalink)  
Antiguo 28/06/2009, 17:22
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 5 meses
Puntos: 0
consulta sobre buscador y paginador de PHP

Saludos amigos resulta que tengo un problema con una aplicaion que estoy desarrollando y es que necesito que busque y pagine al tiempo y la verdad realiza ambas funciones al tiempo el unico inconveniente es que no me muestra los enlaces de paginacion aca les dejo el codigo a ver si me pueden ayudar.

estoy usando una clase que encontre en aqui en el foro para la conexion con la BD que es esta:

Código PHP:
class Conectar{
    private        
$resultado;
    protected    
$cnx;
    public        
$pagError=false;//si es true devuelve el resultado y false lo termina con die

    
public function __construct(){
        
$this->cnx=@mysqli_connect(_LOCALHOST_,_USUARIO_,_PASSWORD_,_BASE_);
        if(!
$this->cnx){
            
self::getError(1);//si ocurre error se llama a la funcion que nos devuelve el error
        
}    
    }
    
    
#funcion para escapar caracteres especiales y evitar inyeccin de SQL
    
public function setEscapar($cadena){
        return @
mysqli_escape_string($this->cnx,$cadena);
    }

    
#devuelve el error de mysql en caso de existir
    
public function getError($tipo=0){
        
$error="ERROR - ";
        if(
$tipo != 0){
            
$error.=mysqli_connect_errno($this->cnx)." - ".mysqli_connect_error($this->cnx);
        }
        else{
            
$error.=mysqli_errno($this->cnx)." - ".mysqli_error($this->cnx);
        }
        if(
$this->pagError){
            return 
$error;//devuelve el error para que el usuario lo use donde quiera
        
}
        else{
            die(
$error);//detiene la aplicacion y muestra el error
        
}
    }
    
    
#devuelve true si no hay error y false si existe
    
public function getHayError(){
        return 
$this->resultado;//devuelve true si no hay error y false si existe
    
}

    
#devuelve el resultado de un select dependiendo del metodo pasado por parametro
    #ya sea array, row, object, field, lengths o assoc por default tiene este ultimo.
    
public function getResultado($modo='assoc'){
        
$modo=strtolower($modo);
        switch(
$modo){
            case 
'array':
                            return @
mysqli_fetch_array($this->resultado);
                            break;
            case 
'field':
                            return @
mysqli_fetch_field($this->resultado);
                            break;
            case 
'lengths':
                            return @
mysqli_fetch_lengths($this->resultado);
                            break;
            case 
'object':
                            return @
mysqli_fetch_object($this->resultado);
                            break;
            case 
'assoc':
            default:
                            return @
mysqli_fetch_assoc($this->resultado);
                            break;
        }

    }

    
#devuelve el Nmero de registros que devolvi la consulta
    
public function getNumFilas(){
        return 
$resNum=mysqli_num_rows($this->resultado);
    }

    
//ejecuta una consulta, insert, update o delete
    
public function setEjecutar($sqlQuery){
        
$this->resultado=mysqli_query($this->cnx,$sqlQuery);
    }

    
//Devuelve el id afectado en un insert
    
public function getIdAfectado(){
        return 
$idAfectado=mysqli_insert_id($this->cnx);
    }

    
//libera la memoria
    
public function setLiberarMemoria(){
        
mysqli_free_result($this->resultado);
    }

    
//cierra la conexion
    
public function setCerrarConexion(){
        
mysqli_close($this->cnx);
    }
    
    
#libera y cierra
    
public function setTerminar(){
        if(!empty(
$this->resultado)){
            
self::setLiberarMemoria();
        }
        
self::setCerrarConexion();
    }

y este es el codigo que utilizo para el buscador y paginador:

Código PHP:
<?php trim($busqueda); //Evitar espacios en blanco en la busqueda

if (!$busqueda)
  {
   
//echo "No se ha ingresado ningun valor a buscar";
     
exit;
  }

  
$busqueda addslashes($busqueda); //Marca una cadena con barras

$pg $_GET["pg"];

if (!isset(
$pg))
$pg 0// $pg es la pagina actual
$cantidad=2// cantidad de resultados por página
$inicial $pg $cantidad
  
//comenzamos la consulta 
$resultado "SELECT * FROM servicios WHERE placa like '%".$busqueda."%'";
$con->setEjecutar($resultado);

$resultado "SELECT * FROM servicios WHERE placa like '%".$busqueda."%' ORDER BY fecha DESC LIMIT $inicial, $cantidad"
$con->setEjecutar($resultado);
$pages ceil($resultado $cantidad); 

?>
<table style="border:1px #FF0000; color:#000000; width:990px; text-align:center;">
<tr style="background:#FFD700;">
    <td><b>Placa Vehiculo</b></td>
    <td><b>Propietario</b></td>
    <td><b>Telefono</b></td>
    <td><b>Tiempo de Garantía</b></td>
    <td><b>Fecha de Ingreso</b></td>
    <td><b>Informe</b></td>
</tr> 

<?php  
    
//mostramos los resultados
     
while($row $con->getResultado()){
     echo 
"<tr bgcolor='#FFFACD'>";
     
//echo "         <td><a style=\"text-decoration:underline;cursor:pointer;\" onclick=\"pedirDatos('".$row['nombre']."')\">".$row['nombre']."</a></td>";
     
echo "         <td>".stripslashes($row["placa"])."</td>";
     echo 
"         <td>".stripslashes($row["propietario"])."</td>";
     echo 
"         <td>".stripslashes($row["tel"])."</td>";
     echo 
"         <td>".stripslashes($row["garantia"])."</td>";
     echo 
"         <td>".stripslashes($row["informe"])."</td>";
     echo 
"         <td>".stripslashes($row["fecha"])."</td>";
     echo 
"</tr>";
     
//echo "<br />";
     
  
}
?>

</table><br />

<?php 
// Creando los enlaces de paginación
echo "<p>";
if (
$pg <> 0)
{
$url $pg 1;
echo 
"<a href='buscar_servicio.php?pg=".$url."'>« Anterior</a> ";
}
else {
echo 
" ";
}

for (
$i 0$i<($pages 1); $i++) {
if (
$i == $pg) {
echo 
"<font face=Arial size=2 color=ff0000><b> $i </b></font>";
}
else {
echo 
"<a href='buscar_servicio.php?pg=".$i."'>".$i."</a> ";
}
}

if (
$pg $pages) {
$url $pg 1;
echo 
"<a href='buscar_servicio.php?pg=".$url."'>Siguiente »</a>";
}
else {
echo 
" ";
}
echo 
"</p>";
espero me puedan ayudar, gracias de antemano.
  #2 (permalink)  
Antiguo 28/06/2009, 21:17
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: consulta sobre buscador y paginador de PHP

nadie me da un ayudita porfa
  #3 (permalink)  
Antiguo 28/06/2009, 21:26
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: consulta sobre buscador y paginador de PHP

Ok tu problema es que cuando haces la busqueda
Se muestran los resultados , pero cuando le das a siguiente no coiside con tu busqueda ?

Podrias dar mas detalle de tu problema.
  #4 (permalink)  
Antiguo 28/06/2009, 21:58
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: consulta sobre buscador y paginador de PHP

Gracias por responder amigo, mira el problema es que si le digo que me muestre solo dos resultados eso me deja ver el inconveniente es que no me deja ver el paginador al final de la pagina solo puedo ver un 0, no me deja ver « Anterior, Siguiente » y tampoco me deja ver los links para acceder a las otras paginas asi como en google que uno se va desplazando por las diferentes paginas, aclaro que la busqueda si la hace de forma correcta espero haber sido mas claro si culaquier cosa trato de subir un a imagen, gracias.
  #5 (permalink)  
Antiguo 28/06/2009, 22:12
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: consulta sobre buscador y paginador de PHP

No entiendo esta parte


Código PHP:
//comenzamos la consulta 
$resultado "SELECT * FROM servicios WHERE placa like '%".$busqueda."%'";
$con->setEjecutar($resultado);

$resultado "SELECT * FROM servicios WHERE placa like '%".$busqueda."%' ORDER BY fecha DESC LIMIT $inicial, $cantidad"
$con->setEjecutar($resultado);
$pages ceil($resultado $cantidad); 
Veo que utilizas el string del sql para dividir entre cantidad

Me parece que lo que deseas hacer es

Código PHP:
$resultado "SELECT * FROM servicios WHERE placa like '%".$busqueda."%' ORDER BY fecha DESC LIMIT $inicial, $cantidad"
$con->setEjecutar($resultado);
$pages ceil($con->getNumFilas() / $cantidad); 
  #6 (permalink)  
Antiguo 28/06/2009, 22:17
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: consulta sobre buscador y paginador de PHP

pues amigo ya con tu solucion por lo menos me deja ver el paginador aunque cuando le doy click sobre culaquiera de los link no funciona pero sera cuestion de que yo lo revise mas a fondo en todo caso muchas gracias por tu ayuda Dios te bendiga.
  #7 (permalink)  
Antiguo 28/06/2009, 22:21
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: consulta sobre buscador y paginador de PHP

Si es primera vez que trabajas con paginacion

te recomiendo un paginador muy bueno
es

http://jpinedo.webcindario.com/scripts/paginator/

Te eliminara mucho dolores de cabeza.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:15.