Foros del Web » Programando para Internet » PHP »

Problema carga formulario

Estas en el tema de Problema carga formulario en el foro de PHP en Foros del Web. Como estan. Tengo un formulario de cotizaciones tiene 25filas, en cada fila hay un select cargado con todos los productos de la base de datos ...
  #1 (permalink)  
Antiguo 27/11/2008, 14:29
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Problema carga formulario

Como estan.

Tengo un formulario de cotizaciones

tiene 25filas, en cada fila hay un select cargado con todos los productos de la base de datos

las 25 filas las cargo en un while, cada vez que entra al while tiene que cargar los productos para pintar la lista.

El problema es que son artos productos "supongo que es eso" y se cansa la pagina tratando de cargar el formulario aveces no me carga nada y aveces me carga solo 10 filas de las 25.

Ya trate modificando el maxim_execution_time pero no funciono que mas puedo hacer para optimizar e lform?

Código PHP:
        <? for ($P=1;$P<=25;$P++) {?>
        <tr align="center">
            <td>
                <? /*<select name="CodProducto<?=$P;?>" id="CodProductoSYS<?=$P;?>" onChange="ValProExiste(<?=$P;?>); CarDatProducto(<?=$P;?>);"> */ ?>
                <select name="SYSCodProducto<?=$P;?>" id="SYSCodProducto<?=$P;?>" onChange="ValProExiste(<?=$P;?>);" >
                    <option value="0"> Seleccione Producto </option>
                    <?
                        
// Cargo los productos existentes en la base de datos.
                        
$ConDatProductosSYS mysql_query("select products.id, products.name from products order by products.name asc");
                        
// Muestro en la lista los productos cargados.
                        
while ($DatProductosSYS mysql_fetch_array($ConDatProductosSYS))
                        {
                            echo 
"<option value=\"".$DatProductosSYS['id']."\">".trim($DatProductosSYS['name'])."</option>";
                        }
                        
// Libero la consulta a MySQL-
                        
mysql_free_result($ConDatProductosSYS);
                    
?>
                </select>
            </td>
  #2 (permalink)  
Antiguo 27/11/2008, 14:37
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problema carga formulario

Por que haces un while para repetir la misma consulta a la base de datos 25 veces?. No entiendo tu logica a ver si dices que es exactamente lo que quieres mostrar.


Por que tu codigo dice que quieres mostrar 25 campos <select>, y los 25 van a mostrar exactamente lo mismo.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #3 (permalink)  
Antiguo 27/11/2008, 14:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema carga formulario

que pasa aquí??

Código:
select products.id, products.name from products order by products.name asc
estas repitiendo la misma, idéntica consulta 25 veces!!!

¿sera por eso que se tarda tanto ??

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 27/11/2008, 14:55
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Problema carga formulario

los cargo 25 veces porque como es un formulario de cotizacion en cada una de las 25 filas se va a cargar la lista de productos para que con ajax se puedan cargar el precio del producto etc

como hago para que con una sola consulta me cargue las 25 listas?
  #5 (permalink)  
Antiguo 27/11/2008, 14:57
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problema carga formulario

Esta bien que tengas 25 filas pero lo que te decimos es por que haces 25 veces la misma consulta, si la data es la misma haz la consulta solo una vez y luego la muestras 25 veces. Aparte que con tu select estas sacando todos los productos de tu BD, imaginate si tienes 10000 productos, esa consulta va a ser pesadita y luego lo vuelves a repetir 25 veces. es de locos .
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #6 (permalink)  
Antiguo 27/11/2008, 15:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema carga formulario

mm... yo haría solo una, y crearía un solo <select/> lo asigno a una variable, y así solo copiamos el select... tu que opinas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 27/11/2008, 15:04
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Respuesta: Problema carga formulario

Código php:
Ver original
  1. <?
  2.                         // Cargo los productos existentes en la base de datos.
  3. $ConDatProductosSYS = mysql_query("select products.id, products.name from products order by products.name asc");
  4.                         // Muestro en la lista los productos cargados.
  5.                         while ($DatProductosSYS = mysql_fetch_array($ConDatProductosSYS))
  6.                         {
  7. $lista.="<option value=\"".$DatProductosSYS['id']."\">".trim($DatProductosSYS['name'])."</option>";
  8.                         }
  9.                         // Libero la consulta a MySQL-
  10.                         mysql_free_result($ConDatProductosSYS);
  11.                     ?>
  12.  
  13.         <? for ($P=1;$P<=25;$P++) {?>
  14.         <tr align="center">
  15.             <td>
  16.                 <? /*<select name="CodProducto<?=$P;?>" id="CodProductoSYS<?=$P;?>" onChange="ValProExiste(<?=$P;?>); CarDatProducto(<?=$P;?>);"> */ ?>
  17.                 <select name="SYSCodProducto<?=$P;?>" id="SYSCodProducto<?=$P;?>" onChange="ValProExiste(<?=$P;?>);" >
  18.                     <option value="0"> Seleccione Producto </option>
  19. <? echo $lista;?>
  20.                 </select>
  21.             </td>
  #8 (permalink)  
Antiguo 27/11/2008, 15:26
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Problema carga formulario

Gracias a todos por sus respuestas y si me la habia fumado vede hoy tienen razon.

ya hice lo que me dijeron y aunque si funciona tengo un problema. son pmuchos registros y aun cargando la lista solo una vez se cansa, hay algo que se pueda hacer hay aparte de incrementar el timepo de ejecucion?
  #9 (permalink)  
Antiguo 27/11/2008, 15:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema carga formulario

usa set_time_limit

http://php.net/set_time_limit
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 00:05.