Foros del Web » Programando para Internet » PHP »

Problema con paginación!

Estas en el tema de Problema con paginación! en el foro de PHP en Foros del Web. Hola amigos, estoy teniendo problemas con una paginación y me da error en un punto y no se porque...pongo el código a ver si alguien ...
  #1 (permalink)  
Antiguo 22/11/2010, 11:04
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años, 7 meses
Puntos: 5
Problema con paginación!

Hola amigos, estoy teniendo problemas con una paginación y me da error en un punto y no se porque...pongo el código a ver si alguien me puede orientar un poco porque no veo el fallo...

Con este código, pongo el limit de forma manual en el select en la base de datos y me da bien:
Código PHP:
<?php

$tabla 
mysql_query("Select count(*) from coches");   
$resultC mysql_fetch_array($tabla);
$count $resultC[0];

# Aqui se pone la cantidad de registros por pagina
# que se quieren mostrar
$hasta 10;
 
if(
$pag==""){
 
$desde 0;
 
$pag 1;    
}
else{
 
$pag $_GET["pag"];
 
$pagS $pag 1;
 
$desde $hasta $pagS;    
}

?>

<?php

function puntos($s)
{
$sstr_replace('"',''$s);
$sstr_replace(':',''$s);
$sstr_replace('.',''$s);
$sstr_replace(',',''$s);
$sstr_replace(';',''$s);
$sstr_replace(' ','-'$s);
return 
$s;
}

$tabla mysql_query('SELECT *, marca as marca_original, LOWER(marca) as marca_minusculas, modelo as modelo_original, LOWER(modelo) as modelo_minusculas, ciudad as ciudad_original, LOWER(ciudad) as ciudad_minusculas, version as version_original, LOWER(version) as version_minusculas FROM coches, ciudades, marcas, modelos, categorias WHERE coches.idciudad = ciudades.idciudad AND coches.idmarca = marcas.idmarca AND coches.idmodelo = modelos.idmodelo AND coches.idcategoria = categorias.idcategoria ORDER BY id DESC LIMIT 10');
while (
$registro mysql_fetch_array($tabla)) {
        

$nombre $registro['imagen1']; 
$id $registro['id'];
$urlmarca $registro['marca_minusculas'];
$urlmodelo $registro['modelo_minusculas'];
$urlversion $registro['version_minusculas']; 
$urlciudad $registro['ciudad_minusculas'];
$urlversion puntos($urlversion); 
?>

<div id="cada_coche">

<img style="border:1px solid #D5D5D5;" align=left height="60" width="80" vspace="4" hspace="10" alt="<?php echo $registro['marca']; ?> <?php echo $registro['modelo']; ?> de segunda mano <?php echo $registro['ciudad']; ?> <?php echo $registro['date']; ?>" src="/anunciar-coches/upload/<?php echo $nombre;?>" width="100" height="75"/> 
<?php echo $registro['precio']; ?> &euro; |  <?php echo $registro['date']; ?>
<?php
// Inicializamos las variables
$tamano 150// tamaño máximo
$contador 0;
$texto htmlentities($registro['descripcion']);
 
// Cortamos la cadena por los espacios
$arrayTexto split(' ',$texto);
$texto '';
 
// Reconstruimos la cadena
while($tamano >= strlen($texto) + strlen($arrayTexto[$contador])){
    
$texto .= ' '.$arrayTexto[$contador];
    
$contador++;
}
echo 
$texto?>...
</div>
<br><br><br><br>

<?php

}
mysql_free_result($tabla);
mysql_close($link);

?>


<br><p align=center><?php
# aqui se llama a la funcion que muestra los links por paginas
# la variable $extra_variables es para anexar mas variables al url
# si es necesario para los querys que hagan.
# Solo se debe concatenar los datos nombre1=valor1&nombre2=value2
# NOTA: puede ubicar en cualquier parte de su codigo esta funcion
# para que aparesca dentro de la celda que desee.
# link totales es una variable al ser definida le dices a la funcion
# cuantos links quieres que aparescan por pantalla ya que si tienes
# 100 paginas no deberas ver los 100 links y solo muestres los necesarios
$link_totales 4;
# se llama la funcion paginar
# los links si tiene un css podran tomar la estructura y color que le pongas
## Inicia Paginador
paginar($count,$hasta,$pag,$link_totales,$extra_variables);
 
# Funcion paginar
# Inicia
function paginar($count,$hasta,$pag,$link_totales,$extra_variables){ 

    
$totpag ceil($count/$hasta); 

    if(
$pag 1){
        
$anterior $pag-1;
        echo 
"<a href='" $_SERVER['PHP_SELF'] . "?pag=$anterior$extra_variables'><< Anterior</a> | ";
    }

    for(
$i=1$i<=$totpag$i++){
        echo 
"<a href='" $_SERVER['PHP_SELF'] . "?pag=$i$extra_variables'>$i</a> | ";
    }

    if(
$pag $totpag){
        
$siguiente $pag+1;
        echo 
"<a href='" $_SERVER['PHP_SELF'] . "?pag=$anterior$extra_variables'>Siguiente >></a> | ";
    }

}          

?>

Pero me interesa implementarlo con dos variables (LIMIT $desde,$hasta), en vez de LIMIT 10 como en el ejemplo anterior...bueno pues de esta forma me da error a la hora de sacar los resultados...:

Código PHP:
<?php

$tabla 
mysql_query("Select count(*) from coches");   
$resultC mysql_fetch_array($tabla);
$count $resultC[0];

# Aqui se pone la cantidad de registros por pagina
# que se quieren mostrar
$hasta 10;
 
if(
$pag==""){
 
$desde 0;
 
$pag 1;    
}
else{
 
$pag $_GET["pag"];
 
$pagS $pag 1;
 
$desde $hasta $pagS;    
}

?>

<?php

function puntos($s)
{
$sstr_replace('"',''$s);
$sstr_replace(':',''$s);
$sstr_replace('.',''$s);
$sstr_replace(',',''$s);
$sstr_replace(';',''$s);
$sstr_replace(' ','-'$s);
return 
$s;
}

$tabla mysql_query('SELECT *, marca as marca_original, LOWER(marca) as marca_minusculas, modelo as modelo_original, LOWER(modelo) as modelo_minusculas, ciudad as ciudad_original, LOWER(ciudad) as ciudad_minusculas, version as version_original, LOWER(version) as version_minusculas FROM coches, ciudades, marcas, modelos, categorias WHERE coches.idciudad = ciudades.idciudad AND coches.idmarca = marcas.idmarca AND coches.idmodelo = modelos.idmodelo AND coches.idcategoria = categorias.idcategoria ORDER BY id DESC LIMIT $desde,$hasta');
while (
$registro mysql_fetch_array($tabla)) {
        

$nombre $registro['imagen1']; 
$id $registro['id'];
$urlmarca $registro['marca_minusculas'];
$urlmodelo $registro['modelo_minusculas'];
$urlversion $registro['version_minusculas']; 
$urlciudad $registro['ciudad_minusculas'];
$urlversion puntos($urlversion); 
?>

<div id="cada_coche">

<img style="border:1px solid #D5D5D5;" align=left height="60" width="80" vspace="4" hspace="10" alt="<?php echo $registro['marca']; ?> <?php echo $registro['modelo']; ?> de segunda mano <?php echo $registro['ciudad']; ?> <?php echo $registro['date']; ?>" src="/anunciar-coches/upload/<?php echo $nombre;?>" width="100" height="75"/> 
<?php echo $registro['precio']; ?> &euro; |  <?php echo $registro['date']; ?>
<?php
// Inicializamos las variables
$tamano 150// tamaño máximo
$contador 0;
$texto htmlentities($registro['descripcion']);
 
// Cortamos la cadena por los espacios
$arrayTexto split(' ',$texto);
$texto '';
 
// Reconstruimos la cadena
while($tamano >= strlen($texto) + strlen($arrayTexto[$contador])){
    
$texto .= ' '.$arrayTexto[$contador];
    
$contador++;
}
echo 
$texto?>...
</div>
<br><br><br><br>

<?php

}
mysql_free_result($tabla);
mysql_close($link);

?>


<br><p align=center><?php
# aqui se llama a la funcion que muestra los links por paginas
# la variable $extra_variables es para anexar mas variables al url
# si es necesario para los querys que hagan.
# Solo se debe concatenar los datos nombre1=valor1&nombre2=value2
# NOTA: puede ubicar en cualquier parte de su codigo esta funcion
# para que aparesca dentro de la celda que desee.
# link totales es una variable al ser definida le dices a la funcion
# cuantos links quieres que aparescan por pantalla ya que si tienes
# 100 paginas no deberas ver los 100 links y solo muestres los necesarios
$link_totales 4;
# se llama la funcion paginar
# los links si tiene un css podran tomar la estructura y color que le pongas
## Inicia Paginador
paginar($count,$hasta,$pag,$link_totales,$extra_variables);
 
# Funcion paginar
# Inicia
function paginar($count,$hasta,$pag,$link_totales,$extra_variables){ 

    
$totpag ceil($count/$hasta); 

    if(
$pag 1){
        
$anterior $pag-1;
        echo 
"<a href='" $_SERVER['PHP_SELF'] . "?pag=$anterior$extra_variables'><< Anterior</a> | ";
    }

    for(
$i=1$i<=$totpag$i++){
        echo 
"<a href='" $_SERVER['PHP_SELF'] . "?pag=$i$extra_variables'>$i</a> | ";
    }

    if(
$pag $totpag){
        
$siguiente $pag+1;
        echo 
"<a href='" $_SERVER['PHP_SELF'] . "?pag=$anterior$extra_variables'>Siguiente >></a> | ";
    }

}          

?>
Si ha alguien se le ocurre el porque estaría encantado de que me ayudasen...
  #2 (permalink)  
Antiguo 22/11/2010, 12:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Problema con paginación!

El problema es que estás usando comillas simples ('), dentro de las cuales no se procesan las variables. Debes usar comillas dobles (")
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/11/2010, 12:23
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: Problema con paginación!

No me digas!! ejejejej!
Parece mentira que a estas alturas aprenda esto! jejejeje!

Muchas gracias!!
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 12:56.