Foros del Web » Programando para Internet » PHP »

paginar resultados dependiendo de los caracteres de una columna en una tabla

Estas en el tema de paginar resultados dependiendo de los caracteres de una columna en una tabla en el foro de PHP en Foros del Web. Antes de nada decir que, he buscado y encontrado como paginar los resultados de una tabla, pero no paginar los resultados dependiendo del numero de ...
  #1 (permalink)  
Antiguo 02/04/2004, 07:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta paginar resultados dependiendo de los caracteres de una columna en una tabla

Antes de nada decir que, he buscado y encontrado como paginar los resultados de una tabla, pero no paginar los resultados dependiendo del numero de caracteres que tiene una columna en una tabla de mi base de datos.

Lo que quiero hacer es precisamente eso, paginar los resultados de una columna de una tabla de mi base de datos, por ejemplo limitandola a 1000 caracteres, es decir, que si en mi columna tengo un texto de 10000 caracteres, cada pagina tenga 1000 caracteres de esos 10000, en cuyo caso quedarian 10 paginas de 1000 caracteres, q serian los 10000 caracteres q tengo dentro de esa columna.

A ver si alguien puede ayudarme en eso. Muchas gracias

Salu2
  #2 (permalink)  
Antiguo 02/04/2004, 20:32
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
nadie me puede ayudar por favor?
  #3 (permalink)  
Antiguo 03/04/2004, 00:48
 
Fecha de Ingreso: diciembre-2002
Mensajes: 15
Antigüedad: 21 años, 3 meses
Puntos: 0
a ver si te sirve esto

<html>
<head>
<title>Páginación de resultados</title>
</head>
<body bgcolor=#FFFFFF>
<?
// Datos de conexión a la base
$base="nombredelabase";
$con=mysql_connect(servidor,usuario,password);
mysql_select_db($base,$con);

if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;

$pegar = "SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());

$contar = "SELECT * FROM tabla ORDER BY titulo";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);

// Imprimiendo los resultados
while($array = mysql_fetch_array($cad)) {
echo $array['titulo']."<br>";
}

// Cerramos la conexión a la base
$con=mysql_close($con);

// Creando los enlaces de paginación
echo "<p class=fonty>";
if ($pg != 0) {
$url = $pg - 1;
echo "<a href='$PHP_SELF?pg=".$url."'>&laquo; Anterior</a>&nbsp;";
} else {
echo " ";
}
for ($i = 0; $i <= $pages; $i++) {
if ($i == $pg) {
if ($i == "0") {
echo "<b> 1 </b>";
} else {
$i = $i+1;
echo "<b> ".$i." </b>";
}
} else {
if ($i == "0") {
echo "<a href=$PHP_SELF?pg=".$i.">1</a> ";
} else {
echo "<a href='$PHP_SELF?pg=".$i."'>";
$i = $i+1;
echo $i."</a>&nbsp;";
}
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente &raquo;</a>";
} else {
echo " ";
}
echo "</p>";
?>
</body>
</html>
__________________
thekiller
  #4 (permalink)  
Antiguo 03/04/2004, 19:36
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
muchas gracias thekiller por responder ;)

pero no me sirve, xq lo q kiero es q me pagine por caracteres de 1 columna de mi tabla, como he explicado antes, pero muchas gracias de todas formas.

a ver si alguien sabria decirme plz

Salu2
  #5 (permalink)  
Antiguo 03/04/2004, 19:55
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Hombre, ¿Exactamente qué deseas paginar? ¿Paginar el contenido del registro perteneciente a una columna? Es como por ejemplo decir que uno de los campos de tu tabla contiene párrafos y deseas paginar dichos párrafos por cada 1000 carácteres...
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #6 (permalink)  
Antiguo 04/04/2004, 06:47
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
Exactamente, deseo paginar el contenido de un campo de una tabla, x ejemplo si en ese campo hay 10000 caracteres en total (una historia o lo q este escrito, con parrafos y lo q en ella haya) q en cada "oja" de mi web se muestren de 1000 en 1000.
  #7 (permalink)  
Antiguo 04/04/2004, 08:41
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Bueno, con la función strlen() puedes contar los carácteres que contiene una cadena de texto. Por ejemplo le aplicas la función a:

Código PHP:
$logitud strleng($row[campo]); 
y te devuelve la cantidad de carácteres de la cadena.

Luego, pues debes dividir la cantidad de carácteres entre 1000 para que te devuelva la cantidad de páginas que vas a generar. Tienes que usar la función ceil() para redondear por arriba en caso dado de que te resulte un decimal en la división.

Código PHP:
$paginas ceil($longitud/1000); 
Finalmente, para saber en qué página estás y la cantidad de carácteres ordenados que corresponden a dicha página utilizas:

Código PHP:
$pagactual 1000*($_GET[page]-1); 
Obviamente $_GET[page] viene por URL, algo asi: pag.php?page=1 donde dicho valor cambia por la pagina que quieras ver.

Y con otra función puedes debes meter la cadena completa y decirle que te la corte a los 1000 carácteres. Pero no se cual será dicha función.

Lo demás... para los expertos. Bye!
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #8 (permalink)  
Antiguo 20/05/2004, 08:12
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
Bueno, retomo el hilo xq aun no lo he conseguido x'D

El tema sigue siendo el mismo, paginar el texto que hay en un campo de mi base de datos por caracteres...

He leido otros post referente a esto pero no me sirve ninguno :(

Lo unico que quiero es paginar mi campo "historia" de mi base de datos en la que contiene 10000 caracteres.

Lo que quiero conseguir esq en la primera pagina me muestre del 0 al 1000, en la segunda del 1001 al 2000, en la tercera del 2001 al 3000 caracteres, y asi sucesivamente.

A ver si alguien puede hechar 1 mano.

Salu2

Última edición por Gotrek; 20/05/2004 a las 09:12
  #9 (permalink)  
Antiguo 20/05/2004, 15:42
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
es realmente imposible hacer lo q quiero? :(

Me podeis dar alguna otra idea para hacer lo mismo, pero de otra forma? o aunq sea algo parecido pero con el mismo fin? pido ideas, no el codigo echo xq de eso me encargo yo si puedo :P

Gracias a todos
Salu2
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:34.