Foros del Web » Programando para Internet » PHP »

Problemas con el uso de sesiones en la paginación

Estas en el tema de Problemas con el uso de sesiones en la paginación en el foro de PHP en Foros del Web. Hola mi problema es el siguiente. Yo tengo en una base de datos unos videos y los muestro embed mediante paginación. Hasta aqui sin problemas ...
  #1 (permalink)  
Antiguo 01/06/2008, 18:01
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Problemas con el uso de sesiones en la paginación

Hola mi problema es el siguiente. Yo tengo en una base de datos unos videos y los muestro embed mediante paginación. Hasta aqui sin problemas me los muestra bien, pero también tengo un buscador a modo de filtro que hace que puedas seleccionar los videos según unas características que elija el usuario.

Cuando ejecuto el buscador la pagina inicial me la muestra bien, pero cuando le doy a la siguiente página en vez de mostrarme la siguiente página de los videos mostrados me la muestra como si no se hubiese hecho ningún filtro.

He leído q se deben usar sesiones pero no se muy bien como usarlas.

Alguien puede ayudarme??

Aqui dejo el código que he hecho para que podais ver como uso las sesiones.

Muchas gracias.


Código:
session_start();// lo pongo al principio de todo.

$videos= 4;
$pagina = $_GET['pag'];
if (empty($pagina)){$limite =0;}
else {$limite = $pagina * $videos;}		
$buscatema = $_POST['buscatema'];
$buscacategoria = $_POST['buscacategoria'];

if(isset($_REQUEST['buscador'])){

if(($buscatema == 0)&&($buscacategoria==0)){
$consulta = mysql_query("SELECT url,id_corto FROM cortos ORDER BY id_corto ASC LIMIT $limite,$videos");
$_SESSION['pag'] = $consulta;
}

elseif(($buscatema !=0) && ($buscacategoria ==0)){
$consulta = mysql_query("SELECT url,id_corto FROM cortos WHERE id_tema = '{$buscatema}' ORDER BY id_corto ASC LIMIT $limite,$videos");
$_SESSION['pag'] = $consulta;
}

elseif(($buscatema == 0) &&($buscacategoria !=0)){
$consulta = mysql_query("SELECT url,id_corto FROM cortos WHERE id_categoria = '{$buscacategoria}' ORDER BY id_corto ASC LIMIT $limite,$videos");
$_SESSION['pag'] = $consulta;
}

else{
$consulta = mysql_query("SELECT url,id_corto FROM cortos WHERE id_categoria = '{$buscacategoria}' AND id_tema = '{$buscatema}' ORDER BY id_corto ASC LIMIT $limite,$videos");
$_SESSION['pag'] = $consulta;
}
}

else{
$consulta = mysql_query("SELECT url,id_corto FROM cortos ORDER BY id_corto ASC LIMIT $limite,$videos");
$_SESSION['pag'] = $consulta;}

$a=0;
$i=0;
$delimitador = "=";
$direccion = array();
$idcorto=array();


while($datos = @mysql_fetch_array($_SESSION['pag'])){
$direccion[$i] = $datos[0];
$idcorto[$i] = $datos[1];
$direccion [$i] = sacar_url($direccion[$i],$delimitador);
$i++;}
// ESTO ES EL CÓDIGO PARA MOSTRAR LOS VIDEOS
 ?>
 <table width="50%" border="0">
  <tr>
    <td><?php if($direccion[$a]){
				$autor= array();
			  $autores =mysql_query("SELECT id_autor FROM cortos_autor WHERE id_corto ='{$idcorto[$a]}'"); 
			  while ($row = @mysql_fetch_array($autores))
			  $autor[0] = $row[0];
			  
			  //print ": $autor";
			$autores = mysql_query("SELECT nombre,apellido1,apellido2 FROM autor WHERE id_autor='{$autor[0]}'");
			while($rows = @mysql_fetch_array($autores, MYSQL_NUM)){
			$autor[0] = $rows[0];

			$autor[1] = $rows[1];
			$autor[2] = $rows[2];}					  	
			print "Autor: $autor[0] $autor[1] $autor[2] "; }?></td>
    <td><?php 
			  if($direccion[$a]){
				$b= $a+1; 
				$autor= array();
			  $autores =mysql_query("SELECT id_autor FROM cortos_autor WHERE id_corto ='{$idcorto[$b]}'"); 
			  while ($row = @mysql_fetch_array($autores))
			  $autor[0] = $row[0];
			  
			  //print ": $autor";
			$autores = mysql_query("SELECT nombre,apellido1,apellido2 FROM autor WHERE id_autor='{$autor[0]}'");
			while($rows = @mysql_fetch_array($autores, MYSQL_NUM)){
			$autor[0] = $rows[0];
			$autor[1] = $rows[1];
			$autor[2] = $rows[2];}	
			if($autor[0])				  	
			print "Autor: $autor[0] $autor[1] $autor[2] ";} ?></td>
  </tr>
  <tr>
    <td><?php if($direccion[$a]){
			 $titulo= array();
			  $autores =mysql_query("SELECT titulo FROM cortos WHERE id_corto ='{$idcorto[$a]}'"); 
			  while ($row = @mysql_fetch_array($autores))
			  $titulo[0] = $row[0]; 
			  print " Título: $titulo[0]";}?></td>
    <td><?php if($direccion[$a]){
				$b = $a +1;
				$titulo= array();
			  $autores =mysql_query("SELECT titulo FROM cortos WHERE id_corto ='{$idcorto[$b]}'"); 
			  while ($row = @mysql_fetch_array($autores))
			  $titulo[0] = $row[0];
			  if($titulo[0])
			  print "Título: $titulo[0]";}?></td>
  </tr>
  <tr>
    <td><object width="200" height="200">
 <param name="movie" value="http://www.youtube.com/v/<?php echo $direccion[$a]; ?>=en">
 </param>
<param name="wmode" value="transparent">
</param>
<embed src="http://www.youtube.com/v/<?php  echo $direccion[$a]."&".hl; $a++; ?>=en" type="application/x-shockwave-flash" wmode="transparent" width="200" height"200"></embed>
 </object></td>
    <td><object width="200" height="200">
 <param name="movie" value="http://www.youtube.com/v/<?php echo $direccion[$a]; ?>=en">
 </param>
<param name="wmode" value="transparent">
</param>
<embed src="http://www.youtube.com/v/<?php  echo $direccion[$a]."&".hl; $a++; ?>=en" type="application/x-shockwave-flash" wmode="transparent" width="200" height"200"></embed>
 </object></td>
  </tr>
  <tr>
    <td><?php $video = $a -2;if($direccion[$video]){?><a href="http://www.youtube.com/watch?v=<?php  echo $direccion[$video]; ?>" rel="vidbox" title="caption">Ver Vídeo</a><?php }?></td>
    <td><?php $video = $video +1; if($direccion[$video]){?><a href="http://www.youtube.com/watch?v=<?php  echo $direccion[$video]; ?>" rel="vidbox" title="caption">Ver Vídeo</a><?php }?></td>
  </tr>
  <tr>
    <td><?php if($direccion[$a]){
			  $autor= array();
			  $autores =mysql_query("SELECT id_autor FROM cortos_autor WHERE id_corto ='{$idcorto[$a]}'"); 
			  while ($row = @mysql_fetch_array($autores))
			  $autor[0] = $row[0];
			  
			  //print ": $autor";
			$autores = mysql_query("SELECT nombre,apellido1,apellido2 FROM autor WHERE id_autor='{$autor[0]}'");
			while($rows = @mysql_fetch_array($autores, MYSQL_NUM)){
			$autor[0] = $rows[0];
			$autor[1] = $rows[1];
			$autor[2] = $rows[2];}					  	
			print "Autor: $autor[0] $autor[1] $autor[2] "; }?></td>
    <td><?php 
			  if($direccion[$a]){
				 $b = $a +1;
				$autor= array();
			  $autores =mysql_query("SELECT id_autor FROM cortos_autor WHERE id_corto ='{$idcorto[$b]}'"); 
			  while ($row = @mysql_fetch_array($autores))
			  $autor[0] = $row[0];
			  
			 
			$autores = mysql_query("SELECT nombre,apellido1,apellido2 FROM autor WHERE id_autor='{$autor[0]}'");
			while($rows = @mysql_fetch_array($autores, MYSQL_NUM)){
			$autor[0] = $rows[0];
			$autor[1] = $rows[1];
			$autor[2] = $rows[2];}
			if($autor[0])				  	
			print "Autor: $autor[0] $autor[1] $autor[2] "; }?></td>
  </tr>
  <tr>
    <td><?php if($direccion[$a]){
			  $titulo= array();
			  $autores =mysql_query("SELECT titulo FROM cortos WHERE id_corto ='{$idcorto[$a]}'"); 
			  while ($row = @mysql_fetch_array($autores))
			  $titulo[0] = $row[0]; 
			  print " Título: $titulo[0]";}?></td>
    <td><?php if($direccion[$a]){
				$b = $a +1;
				$titulo= array();
			  $autores =mysql_query("SELECT titulo FROM cortos WHERE id_corto ='{$idcorto[$b]}'"); 
			  while ($row = @mysql_fetch_array($autores))
			  $titulo[0] = $row[0];
			  if($titulo[0])
			  print "Título: $titulo[0]";}
			  ?></td>
  </tr>
  <tr>
    <td><p>
      <object width="200" height="200">
        <param name="movie" value="http://www.youtube.com/v/<?php echo $direccion[$a]; ?>=en">
        </param>
     <param name="wmode" value="transparent">
     </param>
     <embed src="http://www.youtube.com/v/<?php  echo $direccion[$a]."&".hl; $a++; ?>=en" type="application/x-shockwave-flash" wmode="transparent" width="200" height"200"></embed>
      </object>
    </p>      </td>
    <td><object width="200" height="200">
 <param name="movie" value="http://www.youtube.com/v/<?php echo $direccion[$a]; ?>=en">
 </param>
<param name="wmode" value="transparent">
</param>
<embed src="http://www.youtube.com/v/<?php  echo $direccion[$a]."&".hl; //$a++; ?>=en" type="application/x-shockwave-flash" wmode="transparent" width="200" height"200"></embed>
 </object></td>
  </tr>
  <tr>
    <td><?php $video = $a -1;if($direccion[$video]){ ?><a href="http://www.youtube.com/watch?v=<?php  echo $direccion[$video]; ?>" rel="vidbox" title="caption">Ver Vídeo</a><?php } ?></td>
    <td><?php  $video = $a;if($direccion[$video]){?><a href="http://www.youtube.com/watch?v=<?php echo $direccion[$video]; ?>" rel="vidbox" title="caption">Ver Vídeo</a><?php }?></td>
  </tr>
</table>

    <?php 
	
	
	 
 $inicio = 0;
  $consulta = mysql_query("SELECT * FROM cortos"); 
    $cantidad = mysql_num_rows($consulta); 
    echo "Páginas: " ;
	echo "<a href='".$_SERVER["PHP_SELF"]."?cat=videos&pag=" . $inicio . "'>".$inicio."</a>"; 
    for($i=1;$i<=$cantidad/4;$i++){ 
        echo "<a href='".$_SERVER["PHP_SELF"]."?cat=videos&pag=" . $i . "'>".$i."</a>"; 
    } 

  
?>
  #2 (permalink)  
Antiguo 01/06/2008, 18:04
 
Fecha de Ingreso: febrero-2007
Mensajes: 38
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Problemas con el uso de sesiones en la paginación

El problema me parece de paginacion.

Alguna direccion donde ver el script trabajando en vivo?
  #3 (permalink)  
Antiguo 01/06/2008, 18:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problemas con el uso de sesiones en la paginación

no lo siento, sólo lo tengo en local.

Pero paginar me pagina bien si no hago ningún filtro.
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 11:21.