Foros del Web » Programando para Internet » PHP »

carrousel de posts con paginador php

Estas en el tema de carrousel de posts con paginador php en el foro de PHP en Foros del Web. Hola. Estoy en el intento de hacer un efecto carrousel de posts. Por ahora estoy en la funcion php, ya la tengo pero no funciona ...
  #1 (permalink)  
Antiguo 06/05/2011, 09:17
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
carrousel de posts con paginador php

Hola.

Estoy en el intento de hacer un efecto carrousel de posts. Por ahora estoy en la funcion php, ya la tengo pero no funciona completamente.

a continuación pongo el código.

la parte que llama las variables del articulo, autor, titulo, etc, funciona bien.

lo que no funciona es la parte de la paginación pues simplemente no me da el numero de la pagina siguiente. creo que el problema esta en como poner la variable.

ojala alguien pueda ayudarme para saber donde esta el error.

gracias

saludos

Código PHP:
Ver original
  1. <?php
  2.                         if(isset($_GET['pag'])){
  3.                         $pag= $_GET['pag'];
  4.                         }else{
  5.                         $pag=1;
  6.                         }
  7.                         $colno = 1;
  8.                         $limits = 4;
  9.                        
  10.                         $request1 = "SELECT * FROM posts WHERE post_date and $colno ORDER BY post_$orderby $limits ";
  11.                         $result1 = mysql_query($request1);
  12.                         $lastpage= ceil( $limits / $result1);
  13.                         $pag=(int)$pag;
  14.                         if($pag > $lastpage){
  15.                         $pag= $lastpage;
  16.                         }
  17.                         if($pag < 1){
  18.                         $pag=1;
  19.                         }
  20.                         while($row = mysql_fetch_object($result1))
  21.                        
  22.                             start();
  23.                            
  24.                                    
  25.                        
  26.                        
  27.                         echo '<p align="right">';
  28.                         the_time("l j M Y");
  29.                         echo '</p> ';
  30.                        
  31.                         title();
  32.  
  33.                         echo '<br />';
  34.  
  35.                         autor();
  36.  
  37.                         echo '<br />';
  38.  
  39.                         resumen();
  40.  
  41.                         echo '<br /><br />';
  42.                        
  43.                         if($result1 != 0){
  44.                         $nextpage= $pag +1;
  45.                         $prevpage= $pag -1;
  46.                         echo '<ul id="pagination-flickr">';
  47.                         if ($pag == 1) {
  48.                         echo '<li class="previous-off">Previous</li>';
  49.                         echo '<li class="active">1</li> ';
  50.                         for($i= $pag+1; $i<= $lastpage ; $i++){
  51.                         echo '<li><a href="';
  52.                         echo 'index.php.php?page=';
  53.                         echo $i;
  54.                         echo '">';
  55.                         echo $i;
  56.                         echo '</a></li>';
  57.                         }
  58.                         if($lastpage >$pag )
  59.                         {
  60.                         echo '<li class="next"><a href="';
  61.                         echo 'index.php?page=';
  62.                         $nextpage;
  63.                         echo '" >Next </a></li>';
  64.                         }else{
  65.                         echo '<li class="previous"><a href="';
  66.                         echo 'index.php?page=';
  67.                         $prevpage;
  68.                         echo '"> Previous</a></li>';
  69.                         for($i= 1; $i<= $lastpage ; $i++){
  70.                         if($pag == $i){
  71.                         echo '<li class="active">';
  72.                         echo $i;
  73.                         echo '</li>';
  74.                         }else{
  75.                         echo '<li><a href="';
  76.                         echo 'index.php?page=';
  77.                         echo $i;
  78.                         echo '" >';
  79.                         echo $i;
  80.                         echo '</a></li>';
  81.                         }
  82.                         }
  83.                         if($lastpage >$pag ){
  84.                         echo '<li class="next"><a href="';
  85.                         echo 'index.php?page=';
  86.                         $nextpage;
  87.                         echo '">Next </a></li>';
  88.                         }else{
  89.                         echo '<li class="next-off">Next </li>';
  90.                         }
  91.                         }
  92.                         }
  93.                         echo '</ul>';
  94.                         }
  95.                         ?>
  #2 (permalink)  
Antiguo 06/05/2011, 15:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: carrousel de posts con paginador php

estuve buscando el error, ya he compuesto varios, a continuación pongo el codigo.

por cierto, que el original no es mio, solo lo estoy modificando. tampoco el original funcionaba muy bien, asi que primero he arreglado el original y luego he tratado de adaptarlo a mis necesidades.

Código PHP:

    <?php 

if(isset($_GET['page'])){
    
$page$_GET['page'];
}else{

    
$page=1;
}

$colno 1
$nowlh '\''.$now.'\'';
$limits ' LIMIT '.$ndex_1;

$datos "SELECT $distinct * FROM $posts WHERE post_date <= $nowlh  AND post_karma = $colno ORDER BY post_$orderby $limits ";

$postx=mysql_query($datos);
$arts1;  
$lastpageceil($postx $arts);

$page=(int)$page;
if(
$page $lastpage){
    
$page$lastpage;
}
if(
$page 1){
    
$page=1;
}


$limite"SELECT $distinct * FROM $posts WHERE post_date <= $nowlh  AND post_karma = $colno ORDER BY post_$orderby $limits LIMIT  ($page -1) * $arts , $arts";


$consulta $limite;
$resultado=mysql_query($consulta);

if(!
$resultado){
       
 die(
'Invalid query: ' mysql_error());
}else{
    
      while(
$row mysql_fetch_array($resultado)){  
    
      echo 
'<p align="right">';
                        
the_time("l j M Y");
                        echo 
'</p> ';
                        
                        
                        
title();
                        
                        echo 
'<br />';
                        
autor();
                        echo 
'<br />';
                        
resumen();
                        echo 
'<br /><br />';
                        
                        
    
        } 
      
      
      
?>
       <?php 

if($num_rows != 0){
   
$nextpage$page +1;
   
$prevpage$page -1;
   
echo 
'<ul id="pagination-flickr">';

 if (
$page == 1) {
  
      echo 
'<li class="previous-off">&laquo; Previous</li>';
      echo 
'<li class="active">1</li>';
      
    for(
$i$page+1$i<= $lastpage $i++){
      echo 
'<li><a href="index.php?page=';
      echo 
$i;
      echo 
'">';
      echo 
$i;
      echo 
'</a></li>';
    }
       
    if(
$lastpage >$page ){      
      echo 
'<li class="next"><a href="index.php?page=';
      echo 
$nextpage;
      echo 
'" >Next &raquo;</a></li>';
      
    }else{
      echo 
'<li class="next-off">Next &raquo;</li>';
   }
 } else {
         
      echo 
'<li class="previous"><a href="index.php?page=';
       echo 
$prevpage;
       echo 
'"  >&laquo; Previous</a></li>';
       
      for(
$i1$i<= $lastpage $i++){
                      
            if(
$page == $i){
        echo 
'<li class="active">';
        echo 
$i;
        echo 
'</li>';
         
            }else{
        echo 
'<li><a href="index.php?page=';
        echo 
$i;
        echo 
'" >';
        echo 
$i;
        echo 
'</a></li>';
         
            }
      }
          
      if(
$lastpage >$page ){   
      echo 
'<li class="next"><a href="index.php?page=';
       echo 
$nextpage;
       echo 
'">Next &raquo;</a></li>';
      }else{
    echo 
'<li class="next-off">Next &raquo;</li>';
      }
 }
    echo 
'<ul>';
}
}
?>

el problema que tengo ahora está en la consulta a la base de datos. de hecho no se si se puede simplificar y en lugar de dos consultas solo hacer una.

bueno, la cuestion está asi.

en el script original la primera consulta era general a la tabla.


Código MySQL:
Ver original
  1. $datos="SELECT * FROM ".$GLOBALS['DB_TBL'];

pero yo requiero hacer una consulta especifica, en relación a una columna, y otros datos, esta consulta funciona. no hay problema con ella.


Código MySQL:
Ver original
  1. $datos = "SELECT $distinct * FROM $posts WHERE post_date <= $nowlh  AND post_karma = $colno ORDER BY post_$orderby $limits ";


sin embargo, la segunda consulta en el script original era específica,


Código MySQL:
Ver original
  1. $limite= 'SELECT * FROM '.$GLOBALS['DB_TBL'].' LIMIT '. ($page -1) * $arts . ',' .$arts;


ahora, lo que no se como hacer, es, la segunda consulta. la tengo así pero no funciona pues dice que no estoy aplicando bien LIMIT

Código MySQL:
Ver original
  1. $limite= "SELECT $distinct * FROM $tableposts WHERE post_date <= $nowlh  AND post_karma = $colno ORDER BY post_$orderby $limits LIMIT  ($page -1) * $arts , $arts";


o, sea que casi funciona mi script.

alguien puede ayudarme


gracias
  #3 (permalink)  
Antiguo 07/05/2011, 12:21
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: carrousel de posts con paginador php

Hola. pues sigo mejorando mi codigo aunque todavía no lo puedo echar andar.

bueno, me di cuenta que era inecesario hacer dos consultas, entonces he recompuesto el orden de las variables para hacer una sola consulta


Código PHP:
Ver original
  1. $colno = 1; // post_karma == 1
  2. $nowlh = '\''.$now.'\'';
  3. $arts= 1;
  4.  
  5. $page=(int)$page;
  6. if($page > $lastpage){
  7.     $page= $lastpage;
  8. }
  9. if($page < 1){
  10.     $page=1;
  11. }
  12.  
  13. $limits = ' LIMIT '. $index_1 .',' .($page -1) * $arts . ',' .$arts;
  14.  
  15. $datos = "SELECT $distinct * FROM $tableposts WHERE post_date <= $nowlh  AND post_karma = $colno ORDER BY post_$orderby $limits";
  16.  
  17.  
  18. $postx=mysql_query($datos);
  19.  
  20. $lastpage= ceil($postx / $arts);
  21.  
  22.  
  23. $datos = $resultado;

el problema, que me sigue dando error en la consulta mysql: right syntax to use near '1' at line 1

creo que el problema esta en la consulta en $limits, creo que es el uso de las comillas, y al mismo tiempo de LIMIT

una ayudadita por favor

gracias
  #4 (permalink)  
Antiguo 07/05/2011, 12:27
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: carrousel de posts con paginador php

por que no haces

echo $datos;

y lo que te da pegalo en el phpmyadmin/sql

a ver que error te da
  #5 (permalink)  
Antiguo 07/05/2011, 13:07
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: carrousel de posts con paginador php

pues, el unico error que arroja es invalid query.

por otro lado he pensado que si necesitan dos consultas, una me da los post totales, otra le pone los limites del paginador

entonces, la primera consulta me da el numero de post totales especificos en una columna, dicha columna tiene un limite de posts especificos para esa columna. esta consulta funciona porque la uso en otras columnas que tienen otros limites

Código PHP:
Ver original
  1. $colno = 1; // post_karma == 1
  2. $nowlh = '\''.$now.'\'';
  3. $limits = ' LIMIT '.$index_1;
  4. $datos = "SELECT $distinct * FROM $tableposts WHERE post_date <= $nowlh  AND post_karma = $colno ORDER BY post_$orderby $limits";


La segunda consulta tiene que ser igual que la primera, pero está en funcion del número de de articulos que quiero que se desplieguen por cada pagina (paginador)

Código PHP:
Ver original
  1. $arts= 1;
  2.  
  3. $postx=mysql_query($datos);
  4. $lastpage= ceil($postx / $arts);
  5.  
  6.  
  7. $page=(int)$page;
  8. if($page > $lastpage){
  9.     $page= $lastpage;
  10. }
  11. if($page < 1){
  12.     $page=1;
  13. }


Entonces por eso digo que la segunda consulta tiene dos límites, pero no se si eso se pueda, o sea válido, yo creo que no, pero no se como resolverlo

he probado esto, pero igual me dice que la consulta es invalida

Código PHP:
Ver original
  1. $consulta = $datos. ' LIMIT '. ($page -1) * $arts . ',' .$arts;
  #6 (permalink)  
Antiguo 07/05/2011, 14:00
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: carrousel de posts con paginador php

los limites son para que puedas ver la cantidad de consultas por pagina (paginador)

si ya hiciste el echo de la consulta analiza un poco mas la sintaxis
o mostrame la parte del limit asi la analizamos,

no es dificil de resolver esto.

si no ponele dos valores fijos al limit

limit 1, 10

si anda anda bien quiere decir que parte q esta mal es esa la que indicas
  #7 (permalink)  
Antiguo 07/05/2011, 16:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: carrousel de posts con paginador php

vaya, pues que estaba echo un lio con las variables y las consultas, he vuelto a reescribir el código y ya funciona, pero solo con la condicion de que use la misma consulta en las dos consultas

o sea en $datos y en $consulta

el problema es que quiero darle otros limites a la segunda consulta, que parte de la base de la primera,

o sea que sigo teniendo el mismo problema

gracias.

Última edición por Tooj; 07/05/2011 a las 17:14 Razón: rectificacion

Etiquetas: carrousel, paginador
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 10:19.