Foros del Web » Programando para Internet » PHP »

Paginar resultados PHP en columnas

Estas en el tema de Paginar resultados PHP en columnas en el foro de PHP en Foros del Web. Saludos cordiales a todos los usuarios de Forosdelweb.com. En esta ocasión quiero hacer una consulta acerca del tema de Paginación en PHP por consulta a ...
  #1 (permalink)  
Antiguo 08/07/2012, 11:58
Joz
 
Fecha de Ingreso: junio-2012
Mensajes: 5
Antigüedad: 11 años, 10 meses
Puntos: 0
Paginar resultados PHP en columnas

Saludos cordiales a todos los usuarios de Forosdelweb.com. En esta ocasión quiero hacer una consulta acerca del tema de Paginación en PHP por consulta a base de datos MySQL. Ya antes realicé una consulta en este foro y me respondieron muy bien y correcto y por eso vuelvo a dar las gracias.
Sin dar más rodeos, vamos a la pregunta en sí.
Logré realizar un paginador con resultados más un buscador desde cero el cual funciona perfectamente. Ahora lo que deseo es que tales resultados se paginen en columnas. Es decir, algo así:
Código HTML:
<table>
    <tr>
        <td>$resultado</td>
        <td>$resultado</td>
        <td>$resultado</td>
    </tr>
    <tr>
        <td>$resultado</td>
        <td>$resultado</td>
        <td>$resultado</td>
    </tr>
        <tr>
        <td>$resultado</td>
        <td>$resultado</td>
        <td>$resultado</td>
    </tr>
</table> 
Para esto, dejo -por si acaso se necesite- el código del "form" del buscador primero:

Código HTML:
<form method="GET" action="/search/">
     <input name="busqueda" type="text" value="<?php echo $_GET['busqueda'];?>" />
     <input type="submit" name="btnBuscar" value="Buscar" />
</form> 
Ahora dejo el código el cual está paginando hasta un máximo de 9 registros mostrado por página.


Código PHP:
<!-- PAGINACION !-->
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<?
//FILTRO//
if ($_REQUEST['busqueda']!="")
{
    
$filtro "LIKE '%".$_REQUEST['busqueda']."%'";


//CONECTAR A BASE DE DATOS//
$con=mysql_connect("000webhost.com","usuario_joz","contraseña");
mysql_select_db("usuario_lugares"$con); 

//OBTENEMOS LOS RESULTADOS//
$result mysql_query("SELECT * FROM Departamentos WHERE Descripcion "$filtro .";"$con); 

// TOMAMOS LA CANTIDAD DE RESULTADOS
$total mysql_num_rows($result);

// CANTIDAD DE RESULTADOS //
if ($total==0)
{   if (
$_REQUEST['busqueda']!="")
        
$resultados=$_REQUEST['busqueda'];
        echo 
"No se encontraron resultados para $resultados"
} else {
    if (
$_REQUEST['busqueda']!="")
        
$resultados=$_REQUEST['busqueda'];
        echo 
"Se encontraron $total resultados para $resultados" 
}
// PAGINAMOS //
$registros=9;  //cantidad de resultados por pagina 

//CALCULAMOS EL INICIO EN LA PRIMERA PAGINA//
if(isset($_GET['page'])){
    
$pagina=$_GET['page'];
}else{
    
$pagina=1;
}

if (
is_numeric($pagina))
    
$inicio=(($pagina-1)*$registros);
else
    
$inicio=0;
// HACEMOS LA PAGINACION //
$result mysql_query("SELECT * FROM Departamentos WHERE Descripcion "$filtro ." LIMIT $inicio,$registros;"$con); 
$paginas ceil($total/$registros);
?>
<?php
if ($total!=0)

{

if (
$fila mysql_fetch_array($result));

do {
?>

<!-- INICIO DE FILAS !-->
<tr>
    <td><?php echo $fila['Titulo'];?></td>
</tr>
<!-- FIN INICIO DE FILAS !-->    
          
<?php
} while ($fila mysql_fetch_array($result));

}

}
?>
</table>
<!-- FIN PAGINACION !-->
Y este es el código para el contador de resultados -entiéndase: Anterior, 1, 2..., Siquiente-

Código PHP:
<!-- ENLACES DE PAGINAS !-->
<table width="90%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
 <?
if ($paginas>1// ANTERIOR
{
    if (
$pagina>&& $paginas>1)
        echo 
"<a href='index?page=". ($pagina-1) ."&busqueda=".$_REQUEST['busqueda']."'>Anterior</a> ";
    else
        echo 
"Anterior ";
}
if (
$paginas>1// NUMERACION
{
    for (
$cont=1;$cont<=$paginas;$cont++)
    {
        if (
$cont==$pagina)
            echo 
"$cont ";
        else
            echo 
"<a href='index?page="$cont ."&busqueda=".$_REQUEST['busqueda']."'>$cont</a> ";
    }
}
if (
$paginas>1// SIGUIENTE
{
    if (
$pagina<$paginas)
        echo 
"<a href='index?page=". ($pagina+1) ."&busqueda=".$_REQUEST['busqueda']."'>Siguiente</a> ";
    else
        echo 
"Siguiente ";
}
?>
    </td>
  </tr>
</table>
<!-- ENLACES DE PAGINAS !-->
Lo que deseo lograr es que los 9 resultados por paginas se dividan en tres columnas en esta sección:
<!-- INICIO DE FILAS !-->
<tr>
<td><?php echo $fila['Titulo'];?></td>
</tr>
<!-- FIN INICIO DE FILAS !-->

Muchas gracias por sus respuestas, ojalá me puedan ayudar para terminar mi proyecto.
  #2 (permalink)  
Antiguo 08/07/2012, 12:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 4 meses
Puntos: 20
Exclamación Respuesta: Paginar resultados PHP en columnas

Es sencillo solo debes determinar los números pares o impares , el salto de linea de la tabla o tr debe ser cada 3 columnas o bien si lo haces con divs puedes determinar si es un número par o impar


La tabla debe tomar este aspecto :

<table>

<tr>
<td>Datos</td>
<td>Datos</td>
<td>Datos</td>
<tr>

<tr>
<td>Datos</td>
<td>Datos</td>
<td>Datos</td>
<tr>

<tr>
<td>Datos</td>
<td>Datos</td>
<td>Datos</td>
<tr>

</table>


Tambien puedes usar la propiedad rowspan="3"


Saludos
  #3 (permalink)  
Antiguo 10/07/2012, 13:55
Joz
 
Fecha de Ingreso: junio-2012
Mensajes: 5
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Paginar resultados PHP en columnas

Cita:
Iniciado por fr1974 Ver Mensaje
Es sencillo solo debes determinar los números pares o impares , el salto de linea de la tabla o tr debe ser cada 3 columnas o bien si lo haces con divs puedes determinar si es un número par o impar


La tabla debe tomar este aspecto :

<table>

<tr>
<td>Datos</td>
<td>Datos</td>
<td>Datos</td>
<tr>

<tr>
<td>Datos</td>
<td>Datos</td>
<td>Datos</td>
<tr>

<tr>
<td>Datos</td>
<td>Datos</td>
<td>Datos</td>
<tr>

</table>


Tambien puedes usar la propiedad rowspan="3"


Saludos
Muchas gracias por tu respuesta, lo logré haciendo en dos columnas con el siguiente código que agregué:
Código PHP:
<!-- INICIO DE FILAS !-->
    if (
$control<2) {
        echo 
'<tr>';
        echo 
'<td>'.$fila['Titulo'].'</td>';
    } else {
        echo 
'<td>'.$fila['Titulo'].'</td>';
        echo 
'</tr>';
        
$control 0;
    }
 
    
$control++;
<!-- 
FIN INICIO DE FILAS !--> 
Y declaré una variable antes de todo que es el control:
Código PHP:
$control 1
y para tres columnas vendría ser así:
Código PHP:
<!-- INICIO DE FILAS !-->
    if (
$control=1) {
        echo 
'<tr>';
        echo 
'<td>'.$fila['Titulo'].'</td>';
    } else {
    if(
$control=2){
        echo 
'<td>'.$fila['Titulo'].'</td>';
        } else {
    if(
$control=3){
        echo 
'<td>'.$fila['Titulo'].'</td>';
        echo 
'</tr>';
        
$control 0;
    }
    }
 
    
$control++;
<!-- 
FIN INICIO DE FILAS !--> 
Muchas gracias, dejo como lo hice para que otros quienes lo necesiten pueden ser ayudados. Saludos
  #4 (permalink)  
Antiguo 10/07/2012, 14:07
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Paginar resultados PHP en columnas

en realidad es mas sencillo
Cita:
<table border="1">
<tr>

<?php
for ($i = 1; $i <= 52; $i++) {
echo "<td>" .$i. "</td>";

if ($i % 5 == 0) {
echo "</tr><tr>";
}

}
?>
</tr>
</table>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: mysql, paginacion
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 03:10.