Foros del Web » Programando para Internet » PHP »

Quisiera paginar

Estas en el tema de Quisiera paginar en el foro de PHP en Foros del Web. Hola amigos quisiera saber como hacer que pagine un script con numeros pero, no quisiera usar el paginator de jpinedo, puesto que quisiera saber como ...
  #1 (permalink)  
Antiguo 10/05/2005, 19:22
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 4 meses
Puntos: 0
Quisiera paginar

Hola amigos quisiera saber como hacer que pagine un script con numeros pero, no quisiera usar el paginator de jpinedo, puesto que quisiera saber como se hace, se hacerlo pero no muestra numeros si no solo un enlace que va mostrando de 10 en 10
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #2 (permalink)  
Antiguo 11/05/2005, 00:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Hola Ixtleco:
En el foro hay un par de ejemplos de cómo hacer un script de paginación... pero la idea básica es exactamente la misma (y la misma que Paginator).

Te invito revisar el código de Paginator que justamente está repleto de comentarios para que los curiosos puedan entender exactamente qué pasa en cada linea y por qué está ahí. Si tienes algún problema, postea puntualmente cuál es y de seguro te ayudaremos a escribir tu propio paginador.

Saludos
  #3 (permalink)  
Antiguo 11/05/2005, 22:31
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias lo revisare y lo hare
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #4 (permalink)  
Antiguo 12/05/2005, 08:00
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
¿Cómo Paginar?

Hola, Jorge y amigos del foro

Jorge, te escribí en tu sitio, pero parece que es mejor hacer por acá las consultas y me late que por correo tienes poco tiempo para responder consultas en forma individual.

Me disculpo por ser tan burro en esto del php, soy primerizo, pero ya voy avanzando y perdiendo mi "virgnidad" en esto de programar en este magnífico lenguaje.

Lo que estoy haciendo es un área de noticias, con una portada en donde se presenta el título, un resumen y un enlace "Leer Más...". Quiero limitar el número de noticias, para que no me salga un scroll "eterno", es decir, limitar a 5 noticias y que el resto de las mismas se vayan paginando solitas con números... Todo está en una tabla que se llama noticias y tiene la siguiente estructura:
ID_NOTICIAS
FECHA
TITULO
RESUMEN
DETALLE
IMAGEN
FUENTE

Lo que he intentado es usar el paginator, pero no hay caso, a cada rato me sale que no está definido el $_pagi_sql o simplemente no me sale nada en pantalla. Acá va parte del código del Paginator, he seguiro las instrucciones que tienes en tu sitio, pero no hay caso

//Conexión a la base de datos
$con = mysql_connect("localhost","root","pasword") or die (mysql_error());
mysql_select_db("nombre_basedatos",$con) or die (mysql_error());

//Sentencia sql (sin limit)
$_pagi_sql=sprintf("SELECT * FROM noticias WHERE ID_NOTICIAS");

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos = 10;

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

//Leemos y escribimos los registros de la página actual
while($row = mysql_fetch_array($_pagi_result)){
echo $row['ID_NOTICIAS']."<br />";
}

//Incluimos la barra de navegación
echo"<p>".$_pagi_navegacion."</p>";

/*
* Verificación de los parámetros obligatorios y opcionales.
*------------------------------------------------------------------------
*/
if(empty($_pagi_sql)){
// Si no se definió $_pagi_sql... grave error!
// Este error se muestra sí o sí (ya que no es un error de mysql)
die("<b>Error Paginator : </b>No se ha definido la variable \$_pagi_sql");

Bueno, el resto sigue según ya sabes y creo que no hay nada más que definir.

Jorge, espero puedas ayudarme, de veras te lo agradeceré muchísimo.

Saludos cordiales,

Ricardo
  #5 (permalink)  
Antiguo 12/05/2005, 08:05
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
En el tintero

¿Después que todo está funcionando, ahí se hace el include en la página de noticias del sitio?

Ricardo
  #6 (permalink)  
Antiguo 12/05/2005, 08:52
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 7 meses
Puntos: 15
Yo creo que esa consulta sql esta incompleta:
$_pagi_sql=sprintf("SELECT * FROM noticias WHERE ID_NOTICIAS");

Si quieres que salgan todas las noticias y el paginator las pagine entonces quitale el where y dejalo asi
$_pagi_sql="SELECT * FROM noticias";
  #7 (permalink)  
Antiguo 12/05/2005, 09:35
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Dragon_Mandarin:
Te voy a pedir encarecidamente que hagas la pregunta sólo una vez.
Lo que pone dwaks es el primer error que se puede ver... pero ya te lo habían señalado entes en el otro hilo ¿Ves por qué te digo que es mejor mantener uno sólo?
http://www.forosdelweb.com/f18/como-paginar-php-296550/

Insisto que tu problema no es con la paginación, sino con "Mostrar resultados de una consulta"... Olvídate de la paginación por un momento y haz un script que muestre todos los resultados de la consulta... cuando puedas hacerlo funcionar verás que agregarle la paginación con Paginator es cuestión de un par de segundos.

Saludos

PD: Además has hecho la misma pregunta en OTRO hilo (otro más, van tres)... trata de no hacerlo por favor.
http://www.forosdelweb.com/f18/ayuda-con-paginator-1-6-a-295650/
  #8 (permalink)  
Antiguo 12/05/2005, 21:42
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Insisto... hazlo sin paginar.
Consulta y muestra todos los registros en una sola página.
Una vez que funcione esto, entonces paginarlo será cosa fácil.

Saludos
  #9 (permalink)  
Antiguo 12/05/2005, 21:49
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
¿Estás seguro que no le falta nada a tu código?¿algo así como un while?

Saludos
  #10 (permalink)  
Antiguo 12/05/2005, 22:20
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Creo que no

Hola, Jorge

No, que yo sepa, a mi código no le falta nada. De hecho tengo una paginación, pero para mi gusto es bastante pobre y no tan práctica comola de Paginator. Es una paginación básica, hecha con el DreamweaverMX.

He tratado de hacer funcionar tu Paginator en modo stand alone, es decir, solito y ni así. No se qué rayos estoy haciendo mal y me da lata, a todos les resulta y yo no doy pie en bola, me dicen que en menos de 5 segundos todo está funcionando y llevo 3 días y nada :-p . Entonces, es harto frustrante. De hecho, decidí dejar la paginación hecha con el Dreamweaver y no darle más vueltas al asunto, no al menos hasta que logre hacer funcionar el Paginator y para ello requiero de la ayuda de todos ustedes, en especial de la tuya, Jorge.

Se que no tienes tiempo para nada, solo me resta agradecer el tiempo que te tomas para responder mis posteos y ojalá me des una mano, que harto la necesito .

Un abrazo,

Ricardo
  #11 (permalink)  
Antiguo 12/05/2005, 22:22
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
A todo esto, he hecho eso que dices de paginar y no problem, sin el Paginator.. me muestra todos los registros sin problemas. Pero con el Paginator, nada.. definitivamente hay un detallito que se me va y me desespera no saber.

Ricardo
  #12 (permalink)  
Antiguo 13/05/2005, 00:13
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
OK Ricardo... ese código sin paginar es el que necesito que postees completo... no omitas ni un detalle (claro, nombres, contraseñas no... pero pon todo el código).

Saludos
  #13 (permalink)  
Antiguo 13/05/2005, 08:10
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
OK, acá va ...

Hola, Jorge.

Gracias por tu ayuda, acá envío el código completo de la página php donde salen publicadas las noticias, con el titular, un resumen y nada más, ya que las personas para leer el resto de la información, tienen que suscribirse

El código va completo, íntegro, sin la paginación que hice con el Dreamweaver, pero lo envío en otro posteo, ya que el sistema me alegó diciendo que estaba muy extenso (y tiene toda la razón! jejejej)

Ricardo
  #14 (permalink)  
Antiguo 13/05/2005, 08:12
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Sonrisa El código Parte I

<?php require_once('../Connections/ppppp.php'); ?><?php
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_news = 2;
$pageNum_news = 0;
if (isset($_GET['pageNum_news'])) {
$pageNum_news = $_GET['pageNum_news'];
}
$startRow_news = $pageNum_news * $maxRows_news;

mysql_select_db($database_centrop, $centrop);
$query_news = "SELECT * FROM noticias ORDER BY ID_NOTICIAS DESC";
$query_limit_news = sprintf("%s LIMIT %d, %d", $query_news, $startRow_news, $maxRows_news);
$news = mysql_query($query_limit_news, $centrop) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);

if (isset($_GET['totalRows_news'])) {
$totalRows_news = $_GET['totalRows_news'];
} else {
$all_news = mysql_query($query_news);
$totalRows_news = mysql_num_rows($all_news);
}
$totalPages_news = ceil($totalRows_news/$maxRows_news)-1;

mysql_select_db($database_centrop, $centrop);
$query_ingresar = "SELECT * FROM news_member";
$ingresar = mysql_query($query_ingresar, $centrop) or die(mysql_error());
$row_ingresar = mysql_fetch_assoc($ingresar);
$totalRows_ingresar = mysql_num_rows($ingresar);

$queryString_news = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_news") == false &&
stristr($param, "totalRows_news") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_news = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_news = sprintf("&totalRows_news=%d%s", $totalRows_news, $queryString_news);
?>

Última edición por Dragon_Mandarin; 14/05/2005 a las 11:45
  #15 (permalink)  
Antiguo 13/05/2005, 08:14
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
De acuerdo Comentario

Tú, como experto en php podrás darle el "palo al gato" y hacer funcionar tu Paginator en mi página "enews.php". Cuando lo consigas, el resto será pan comido para mi, ya que podré replicar la misma solución en un par de páginas más que básicamente tienen lo mismo (como aquella donde va el detalle de la información) Solo dime cómo hacerlo posteriormente y ahí ya irá todo en tierra derecha .

Gracias, un abrazo,

Ricardo
  #16 (permalink)  
Antiguo 13/05/2005, 11:31
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Ufff... eso es lo malo del DreamWeaver...
Lo que tienes ahí es una maraña de código...

Dices que ese código muestra todos los registros sinpaginar y es mentira.
Todo el primer bloque de PHP se está refiriendo a variables involucradas en la paginación.

Para mostrar todos los registros, basta con una consulta simple y ya está... dos líneas.

Saludos
  #17 (permalink)  
Antiguo 13/05/2005, 11:36
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Código PHP:
<?php
//Mira a lo que se reduce este primer bloque
require_once('../Connections/ppppp.php');
mysql_select_db($database_centrop$centrop);
$_pagi_sql "SELECT * FROM noticias ORDER BY ID_NOTICIAS DESC";
$_pagi_cuantos 3;
include(
"paginator.inc.php");
?>
<html>
<head>
El resto de la primera parte sigue igual.


En el segundo bloque todo está igual hasta llegar a esta línea:
A partir de ahí cambia esa parte por lo que sigue:
Código PHP:
Si ya es usuario registrado, para ingresar haga click <b><a href="../../../programas/descargas/acceso3.php">aqu&iacute;</a>.</b></font>
<br>
<br>
<?php echo "<p>".$_pagi_navegacion."</p>"?>
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<?php while ($row mysql_fetch_assoc($_pagi_result)){ ?>
<tr>
<td><h1><span class="Estilo1"><?php echo $row['TITULO']; ?></span><br>
</h1>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"><ul><li><b><?php echo $row['RESUMEN']; ?></b></li></ul>
</font>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<br>
<br>
</font>
<hr align="left" width="100%" size="1">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font></td>
</tr>
<?php ?>
<tr>
<td valign="top">
</font></td>
Todo lo que sigue permanece igual.
Ah también quieta los mysql_free_result() del final y si quieres pones:
Código PHP:
mysql_free_result($_pagi_result); 
Listo!... ahora tu código está paginado con Paginator y al menos el PHP está más limpio y ordenado.

Saludos
  #18 (permalink)  
Antiguo 14/05/2005, 11:07
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años
Puntos: 14
Hola, estimado Jorge!

Gracias pore tu ayuda! Ahora sí funciona, pero hay un "solo" enorme problema: estoy amarrado al código colocado por el Dreamweaver.. si lo saco, simplemente no me sale nada en pantalla, es decir, todo en blanco. Luego, si dejo el código, sale el título, el resumen y abajito los números de paginación gracias a tu Paginator, o sea, salen los números, pero no avanzan hacia el resto de las noticias, avanzan los números, pero siempre me salen las mismas noticias de la portada. En suma, no avanza hacia el resto de los registros.

Ahora veré cómo hago para hacer que funcione y si me echas otra mano, nuevamente agradecido. Unabrazo,

Ricardo
  #19 (permalink)  
Antiguo 14/05/2005, 11:36
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Mira... un par de recomendaciones:
- Estudia algo de HTML y CSS para que seas capaz de seguir el código que te genera el Dreamweaver y sepas qué te sirve y qué no. Además harías un HTML mucho más limpio y válido (Si etiquetas "font" por ejemplo).
- Estudia algo de PHP básico, como sintaxis, bucles y conexión a la base de datos. Para que sepas qué es lo que realmente necesitas y puedas hacerlo tú mismo sin depender del DreamWeaver que te genera un código demasiado enredado.
-----------------------------------------------------

Postea el código completo que estás utilizando ahora (el que no funciona) y también el que sí funciona. Si te parece demasiado, envíamelos a mi email: jorpinedo[arroba]yahoo.es

Yo los reviso y con gusto te ayudo.

Saludos
  #20 (permalink)  
Antiguo 14/05/2005, 16:42
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
recibí tu email... al parecer no me has entendido mucho.
De todas maneras te acabo de responder y te he enviado el código que debería funcionar.
(No he hecho más que cambiar lo que ya te he dicho aquí)

Saludos
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 03:53.