Foros del Web » Programando para Internet » PHP »

Bucle For - Necesito Mejorar el codigo

Estas en el tema de Bucle For - Necesito Mejorar el codigo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/07/2011, 20:40
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 12 años, 8 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
  #2 (permalink)  
Antiguo 23/07/2011, 21:41
Avatar de Aaronus23  
Fecha de Ingreso: diciembre-2010
Ubicación: https://home
Mensajes: 81
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Bucle For - Necesito Mejorar el codigo

ya probaste eliminando el set_time_limit
  #3 (permalink)  
Antiguo 23/07/2011, 21:55
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Bucle For - Necesito Mejorar el codigo

80 veces? Cuanto tiempo tarda aproximadamente en cargarse las 30?
Ya intentaste checar el uso de CPU del hosting para ver si se dispara al 100%?

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #4 (permalink)  
Antiguo 23/07/2011, 22:04
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Bucle For - Necesito Mejorar el codigo

Cita:
Iniciado por Aaronus23 Ver Mensaje
ya probaste eliminando el set_time_limit
De hecho eso lo agregue a ultimo momento, en un intento de solucionar el problema (Sin eso tampoco funciona)

Cita:
Iniciado por Sourcegeek Ver Mensaje
80 veces? Cuanto tiempo tarda aproximadamente en cargarse las 30?
Ya intentaste checar el uso de CPU del hosting para ver si se dispara al 100%?

Saludos!
Las 30 cargan al instante, en menos de 1 segundo y sobre el uso de CPU, no se donde puedo verlo (Buscare en el cpanel).
  #5 (permalink)  
Antiguo 23/07/2011, 22:40
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Bucle For - Necesito Mejorar el codigo

Creo que asi si llegaria hasta el 80 :D
Código PHP:
<link rel="stylesheet" type="text/css" href="css/modulos.css"/>
<?PHP 
set_time_limit
(0);
$prefijo="nombreset";
for(
$numero=0;$numero <80;$numero++){
echo 
"
<body oncontextmenu='return false'>
<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";
?>

Etiquetas: bucle, html, imagenes, mejorar, tabla, variables
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 16:50.