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)
{
$s= str_replace('"','', $s);
$s= str_replace(':','', $s);
$s= str_replace('.','', $s);
$s= str_replace(',','', $s);
$s= str_replace(';','', $s);
$s= str_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']; ?> € | <?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)
{
$s= str_replace('"','', $s);
$s= str_replace(':','', $s);
$s= str_replace('.','', $s);
$s= str_replace(',','', $s);
$s= str_replace(';','', $s);
$s= str_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']; ?> € | <?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> | ";
}
}
?>