estoy intentando crear un catálogo virtual, paginando los resultados y dividiendo en 2 columnas los resultados de cada categoría. Es decir, lo que estoy intentando hacer es que cuando un usuario seleccione una categoría, el php le devuelve 4 productos por página (el resto lo pagina), y estos 4 resultados que los divida en 2 columnas, dando por consiguiente 2 filas.
Para realizar esto estoy usando un código que he tomado de algún lugar (probé con tantos códigos que no recuerdo el sitio exacto):
Código:
Posteriormente pongo ésto encima de la tabla de los 4 resultados:<?php $categ1 = 1; //Número de la categoría. Campo "categoria" de la tabla SQL. $categ2 = 1; // Número de la sub-categoría. Campo "categoria2" de la tabla SQL. $host="localhost"; $user="user"; $pass="password"; $db="basededatos"; if(!$link=@mysql_connect($host,$user,$pass)) die ("Error"); $base=@mysql_select_db($db,$link)or die("Error"); require 'PageNavigator.php'; //Maximo de paginas, procurar que sea # par define("PERPAGE", 4); define("OFFSET", "offset"); $offset=(int)@$_GET[OFFSET]; $recordoffset=$offset*PERPAGE; $sql="SELECT * FROM productos WHERE categoria = $categ1 AND categoria2= $categ2 ORDER BY id ASC LIMIT $recordoffset,". PERPAGE; $total="SELECT COUNT(*) as cuantos FROM productos"; $result = @mysql_query($sql); $result0 = @mysql_query($total); $totalrecords=mysql_fetch_assoc($result0); $totalrecords=$totalrecords['cuantos']; // esto de par e impar es para tener una mejor fluidez de datos $fieldPar; $fieldImpar; $i=0; while ($row = @mysql_fetch_array($result, MYSQL_ASSOC)){ $i++; if(($i%2)){ $fieldImpar[] = $row; }else{ $fieldPar[] = $row; } } $pagename=basename($_SERVER['PHP_SELF']); $numpages = ceil($totalrecords/PERPAGE); $otherparameter = "&unparametro=VALOR :D"; $primedio=ceil((count($fieldImpar)+count($fieldPar))/2); ?>
Código:
Y por último:<?php for($i=0;$i<$primedio;$i++){ ?>
Código:
Mi problema es que no sé dónde tengo que poner la última parte, ya que donde lo ponga lo que hace es repetir los 4 productos de nuevo. Es decir, si pongo el código al final de la tabla con los 4 productos, me repite de nuevo los 4 productos debajo de éstos.<? } ?>
El código que tengo con las tablas es el siguiente:
Código:
El último código creo que es para que se paginen los datos, aunque esa parte el php me lo pone encima de la tabla aunque pongo el código al final de ésta. Eso es otra cosa que no entiendo, pero ya lo miraré.<?php for($i=0;$i<$primedio;$i++){ ?> <td width="300"><table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"><img src="images/<?=$fieldImpar[$i][foto]?>" width="300" height="200"></td> </tr> <tr> <td height="10" colspan="3"></td> </tr> <tr> <td colspan="3" class="PRODname"><?=$fieldImpar[$i][nombre]?></td> </tr> <tr> <td colspan="3"><span class="PRODdescrip"><?=$fieldImpar[$i][descripcion]?></span></td> </tr> <tr> <td height="10" colspan="3"></td> </tr> <tr> <td width="75"><img src="images/productos/referencia.jpg" width="75" height="14"></td> <td width="8"> </td> <td width="217" class="PRODref"><?=$fieldImpar[$i][referencia]?></td> </tr> <tr> <td colspan="3"> </td> </tr> </table></td> <td width="20"> </td> <td width="300"><table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"><img src="images/<?=$fieldPar[$i][foto]?>" width="300" height="200"></td> </tr> <tr> <td height="10" colspan="3"></td> </tr> <tr> <td colspan="3" class="PRODname"><?=$fieldPar[$i][nombre]?></td> </tr> <tr> <td colspan="3"><span class="PRODdescrip"><?=$fieldPar[$i][descripcion]?></span></td> </tr> <tr> <td height="10" colspan="3"></td> </tr> <tr> <td width="75"><img src="images/productos/referencia.jpg" width="75" height="14"></td> <td width="8"> </td> <td width="217" class="PRODref"><?=$fieldPar[$i][referencia]?></td> </tr> <tr> <td colspan="3"> </td> </tr> </table></td> <td width="15"> </td> </tr> <tr> <td><table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"><img src="images/<?=$fieldImpar[$i][foto]?>" width="300" height="200"></td> </tr> <tr> <td height="10" colspan="3"></td> </tr> <tr> <td colspan="3" class="PRODname"><?=$fieldImpar[$i][nombre]?></td> </tr> <tr> <td colspan="3"><span class="PRODdescrip"><?=$fieldImpar[$i][descripcion]?></span></td> </tr> <tr> <td height="10" colspan="3"></td> </tr> <tr> <td width="75"><img src="images/productos/referencia.jpg" width="75" height="14"></td> <td width="8"> </td> <td width="217" class="PRODref"><?=$fieldImpar[$i][referencia]?></td> </tr> <tr> <td colspan="3"> </td> </tr> </table></td> <td> </td> <td><table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"><img src="images/<?=$fieldPar[$i][foto]?>" width="300" height="200"></td> </tr> <tr> <td height="10" colspan="3"></td> </tr> <tr> <td colspan="3" class="PRODname"><?=$fieldPar[$i][nombre]?></td> </tr> <tr> <td colspan="3"><span class="PRODdescrip"><?=$fieldPar[$i][descripcion]?></span></td> </tr> <tr> <td height="10" colspan="3"></td> </tr> <tr> <td width="75"><img src="images/productos/referencia.jpg" width="75" height="14"></td> <td width="8"> </td> <td width="217" class="PRODref"><?=$fieldPar[$i][referencia]?></td> </tr> <tr> <td colspan="3"> </td> </tr> </table></td> <? } ?> <center> <?php //numero de paginas minimo necesarias if($numpages>1){ //Crea el navegador $nav = new PageNavigator($pagename, $totalrecords, PERPAGE, $recordoffset, 4, $otherparameter); echo $nav->getNavigator(); } ?>
¿Puede alguien ayudarme, por favor? Muchas gracias por adelantado.