Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2011, 20:40
Antiferna
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Bucle For - Necesito Mejorar el codigo

Bueno si bien no soy nuevo en el foro, dado que siempre estuve sin registrarme, si lo soy como registrado jeje.
Voy a tratar de explicar todo, incluido el problema lo mas claro y resumido posible. Tengo un nivel intermedio de conocimientos sobre PHP, aunque se podria decir que aun soy principiante. Hoy he estado toda la tarde pasando una mini web de html a php. Mas especificamente esta web es una pagina de donaciones de un servidor de juegos online, y lo que buscaba era reducir el codigo.

Me explico:
Tengo un documento html con 80 tablas de igual estructura, pero diferente contenido. En total todo pesaba 135kb, mas el peso de las imagenes. Por esta razon hoy se me ocurrio hacer una unica tabla y mediante php repetirla las 80 veces, cambiando su contenido con variables ubicadas en un archivo de configuracion.

Hasta ahi todo bien, de hecho lo logre.... hice un loop con la funcion for. Configure una variable para que repitiera las tablas unas 25 veces y todo bien. El problema surgio al intentar repetir las tablas las 80 veces... solo se mostraban aprox 30 veces y luego se cortaba. Supuse que era un problema de memoria del apache, pero mi hosting no me permite aumentarlo, por eso recurro a ustedes. Quisiera que me ayuden con el codigo buscando otras alternativas o diciendome que puedo hacer para solucionar mi problema. Sin ams vueltas aca les dejo el codigo:

Index.php:
Código PHP:
<link rel="stylesheet" type="text/css" href="css/modulos.css"/>
<?PHP 
set_time_limit
(0);
include(
"config.php");
$prefijo="nombreset";
for(
$numero=0;$numero<$numerodesets;$numero++;){echo"
<body oncontextmenu='return false'>
<table width='456' align='center'><tr>
<td height='114'><table width='200' border='0' align='center'><tr>
<td><table bordercolor='#999999' height='145' cellspacing='0' width='517' border='1'><tbody><tr bgcolor='#999999'>
<td height='23' colspan='4' bgcolor='#333333' style='background-image: url(images/tablebg.png);'>
<div align='center' style='nombreset'>Set ${"nombreset".$numero}</div></td></tr></tbody><tr>
<td width='32' height='138' rowspan='5'><img src='$imagen' alt=''></td>
<td width='363' height='29'><center>Personajes: $personajes</center></td>     
<td width='108' height='29' rowspan ='1' class='precio' style='background-image: url(images/tablebg.png); background-repeat:inherit;'>Precio</td></tr><tr>
<td width='363' height='32'><center>Opciones Disponibles: $opciones</center></td>
<td width='108' height='32' rowspan='2' ><div><center>AR$: Pesos Argentinos</center></div><div><center>USD: D&oacute;lares</center></div></td></tr> <tr>
<td width='363' height='36'><center>Partes: $partes</center></td></tr><tr>
<td width='363' height='23' style='background-image: url(images/tablebg.png);'><center>Set ${"nombreset".$numero} Completo</center></td>
<td width='108' height='23' style='background-image: url(images/tablebg.png);'><center>$precio</center></td></tr> <tr></tr><tr></tr></table> </td></tr></table>"
;}
Echo
"<table width='519' border='0' align='center' cellpadding='0' cellspacing='0'><tr><td width='352'>$leyenda</td></tr></table>";${$prefijo.$numero}= "$numero";
?>
Config.php:
Código PHP:
<?PHP
//Configurar la cantidad de veces que se repetira la tabla
$numerodesets="3";

//Nombre de los Sets, Precio y Descripciones
$nombreset0="Nombre 1";
$nombreset1="Nombre 2";
$nombreset2="Nombre 3";

//Leyenda de la Página
$leyenda="Esta es la leyenda del pie de pagina.";
?>
En si hay variables que aun no estan definidas, pero es porque no he terminado con el codigo. De todas formas asi deberia funcionar bien.

Agrego: Ya probe con While, y solo logre que muestre 3 o 4 tablas mas.

Saludos

Última edición por Antiferna; 23/07/2011 a las 20:50