Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/09/2012, 00:54
fr1974
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 5 meses
Puntos: 20
Exclamación Respuesta: Separar en bucle por elementos

Este es mi script y el problema es utilizar eso lo de par e impar por eso que consideré que era mejor un post independiente :

Código PHP:

<?php
/// Opciones gal,file o dir ///
$p_mode="file";
$p_cols="3";
$p_ruta_images="imagenes/banners";
$p_ruta_file="ejemplo.txt";
$p_ruta_dir="db_p/db_productos";
$p_number_elementos_pag="4";
$p_grupos_paginados="5";
///
?>


<?php
if ($p_mode=="file")
{
$p_file=file("".$p_ruta_file."");
$p_n_elements=0;
for(
$p=0;$p<sizeof($p_file);$p++)
{
$f_files[]=$p_file[$p];
$p_n_elements++;
}
}
?>


<?php
if ($p_mode=="gal" or $p_mode=="dir")
{

if (
$p_mode=="gal")
{
$p_dir="".$p_ruta_images."";
}
else
{
$p_dir=="".$p_ruta_dir."";
}

$p_n_elements=0;

$p_dir=opendir($p_dir);

while(
$file=readdir($p_dir))
{
if (
$file!="." && $file!=".." && $file!=".htaccess" && $file!="index.html" && $file!="Thumbs.db" && $file!="config.dat")
{
$p_n_elements++;
}
}
closedir($p_dir);

}
?>


<?php
$p_number_elements
="".$p_n_elements."";
$p_totales=ceil($p_number_elements/$p_number_elementos_pag);
$pag="".$_REQUEST['pag']."";

?>


<?
$back_total
="<a href=?pag=1>  <<</a>";
$next_total="<a href=?pag=$p_n_elements>  >></a>";
?>

<?php




if ($p_totales<$p_grupos_paginados)
{
$p_grupos_paginados="$p_totales";
}
else
{
$p_grupos_paginados="$p_grupos_paginados";
}



/// Si la página es cero ///
if ($pag==or $pag=="" or $pag<or $pag==1)
{
$p_ini=1;
$p_end="".$p_grupos_paginados."";


$p_ini_e="1";
$p_end_e="".$p_number_elementos_pag."";


$back="";
$next='<a href=?pag='.($pag+1).'>> </a>';

}
///



/// Si páginas superan el total ///
if ($pag>=$p_totales)
{

print 
"mayor";
$p_ini="".($p_totales)-($p_grupos_paginados)+(1)."";
$p_end="".$p_totales."";


$p_ini_e="".($p_n_elements)-($p_number_elementos_pag)+(1)."";
$p_end_e="".$p_n_elements."";


$back='<a href=?pag='.($pag-1).'>< </a>';
$next="";
}
///







if ($pag>&& $pag<$p_totales)
{



//if (($pag)+($p_grupos_paginados)>=$p_totales)
if ($pag>=$p_totales)
{

$p_ini="".($p_totales-$p_grupos_paginados)+(1)."";
$p_end="".$p_totales."";

$back='<a href=?pag='.($pag-1).'>< </a>';
$next='<a href=?pag='.($pag+1).'>> </a>';

$p_ini_e="".($p_n_elements)-($p_number_elementos_pag)+(1)."";
$p_end_e="".$p_n_elements."";


}
else
{







if ((
$pag)+($p_grupos_paginados)>=$p_totales)
{


$p_ini="".($p_totales)-($p_grupos_paginados)+(1)."";
$p_end="".$p_totales."";

}
else
{
$p_ini="".($pag)."";
$p_end="".($p_ini)+($p_grupos_paginados)-(1)."";
}




if ((
$pag)*($p_number_elementos_pag)>$p_n_elements)
{
$p_ini_e="".($p_n_elements)-($p_number_elementos_pag)+(1)."";
$p_end_e="".$p_n_elements."";
}
else
{
$p_end_e="".($pag)*($p_number_elementos_pag)."";
$p_ini_e="".($p_end_e)-($p_number_elementos_pag)+(1)."";
}



$back='<a href=?pag='.($pag-1).'>< </a>';
$next='<a href=?pag='.($pag+1).'>> </a>';







}

}



?>









<?php
print "<table width=50% border=0 cellpadding=0 cellspacing=1 align=center valign=middle>
<tr> 
<td align=center valign=middle colspan=$pages>
</td>
</tr><tr>"
;
?>

<?php

$x
=$p_ini_e-1;


echo 
"<b>$p_ini_e $p_end_e</b>";

for(
$i=$p_ini_e;$i<=$p_end_e;$i++)
{


print 
"<td align=center valign=middle>";


echo 
$f_files[$x];


print 
"</td>";


if ((
$i)%$p_cols==0)
{
print 
"</tr>";
}
else
{

}



$x++;
}

print 
"</table>";
?>































<?php

echo $back_total
echo 
$back

for(
$i=$p_ini;$i<=$p_end;$i++)
{

print 
"<a href=?pag=".$i.">".$i."</a> ";

}

echo 
$next
echo 
$next_total

?>



Para testearlo crear un archivo de texto ejemplo.txt con saltos de linea con cualquier valor nada más

El problema es que los elementos no salen en las columnas indicadas por eso que lo de par impar no me funciona , el script este que he hecho podrá paginar resultados pro salto d elinea en campos de texto como directorios o imágenes

Pero me falla eso

El actual caso que pongo es leyendo un archivo con saltos de linea

Saludos