Foros del Web » Programando para Internet » PHP »

Ayuda! mysql_free_result() no libera y cuelga script

Estas en el tema de Ayuda! mysql_free_result() no libera y cuelga script en el foro de PHP en Foros del Web. Hola Gente! nuevamente por aqui! yo trato de no molestar con mis consultas pero cuando ya no encuentro la solucion no me queda otra jeje!!! ...
  #1 (permalink)  
Antiguo 07/09/2009, 17:22
 
Fecha de Ingreso: febrero-2008
Mensajes: 22
Antigüedad: 16 años, 2 meses
Puntos: 0
Ayuda! mysql_free_result() no libera y cuelga script

Hola Gente! nuevamente por aqui! yo trato de no molestar con mis consultas pero cuando ya no encuentro la solucion no me queda otra jeje!!!

Les comento basicamente lo que estoy haciendo.

tengo un codigo que ejecuta un while dentro de otro!

El primero se ejecuta de acuerdo a la cantidad de recursos que tenga cargados en la base de datos, el ejemplo es para 25.
El segundo ejecuta por cada uno de esos 25 la impresion de X cantidad de selects. Esa X cantidad seria por ejemplo las direcciones de las empresas cargadas en la base de datos, la cual esta definida en otra variable.

El codigo seria este:

Código PHP:

$cantrec 
25;
$cantdir 2;

$v 1;
While (
$v <= $cantrec){
 echo 
"<h1>Direcciones Empresa $v:</h1>";
              
      
$x 1;
      While (
$x <= $cantdir){
      echo 
"Direccion $x<select name=\"id[$v][$x]\">";

     
$consulta1mysql_query("SELECT id,name,dir FROM direcciones ORDER BY name");
                            
While(
$linea mysql_fetch_array($consulta1)){
echo 
"<option value=\"".$linea[id]."\">".$linea[name]." // ".$linea[dir]."</option>";
}
mysql_free_result($consulta1);
echo 
"</select>";
echo 
"<hr>";
     
$x++;
    }
$v++;
 } 
Antes se ejecutaba, cuando tenia la variable $cantrec en 5 o 10, pero ahora al ser muchos no se ejecuta, se queda cargando la pagina y llega a 23 impresiones.
el problema esta que si agrego mas registros a la tabla direcciones, al imprimir mas resultados en la lista del select, llega a imprimir solo 20 ejecuciones del primer bucle...

El mysql_free_result lo puse en todos los bucles, para ir probando donde podria llegar a liberar, pero no lo hace, es decir, este donde este sigue colgando la pagina y no termina de ejecutar el script.

Alguna ayudita? tal vez sea una tonteria pero no logro resolverlo... busque info por todos lados y no logro hacer que funcione.

Tengo instalado apache en mi notebook HP HDX16 (Intel core2 duo t6400 2.00gh, con 4mb de ram) con windows vista. Asi que no creo que sea problema de memoria del equipo.

Ojala alguno pueda ayudarme porque esto no me deja continuar con el sistemita que estoy armando.

Gracias de antemano.

Damian
  #2 (permalink)  
Antiguo 07/09/2009, 17:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 22
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Ayuda! mysql_free_result() no libera y cuelga script

Acabo de hacer un pequeño cambio y me deja ejecutar todo tal cual esta, pero sigue tirando el mismo error si agrego unos 15 registros mas en la tabla direcciones.

Cambie lo siguiente:

Código PHP:
While($linea mysql_fetch_array($consulta1)){
echo 
"<option value=\"".$linea[id]."\">".$linea[name]." // ".$linea[dir]."</option>";

Por

Código PHP:
While($linea mysql_fetch_array($consulta1)){
$id $linea['id'];
$name $linea['name'];
$dir $linea['dir'];
echo 
"<option value=\"$id">$name _ $dir</option>";

Sigo probando
  #3 (permalink)  
Antiguo 07/09/2009, 18:01
 
Fecha de Ingreso: febrero-2008
Mensajes: 22
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Ayuda! mysql_free_result() no libera y cuelga script

Bueno, resolvi el tema de la siguiente manera, no se sera la mas correcta, pero me funciona...

Hice la consulta a la base direcciones fuera de todos los bucles.
Imprimi todo el contenido en una variable.
Luego, debajo donde estaba originalmente la consulta, quite todo eso y pedi que imprima con echo la variable que contiene las opciones y listo! me muestra la lista igual en todas en solo 2 segundos...

Es la idea total todas las listas son iguales, la seleccion es a mano.

gracias y si alguno tiene un codigo por ahi mejor, lo espero.
Saludos

Damian
  #4 (permalink)  
Antiguo 08/09/2009, 14:10
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 76
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Ayuda! mysql_free_result() no libera y cuelga script

Cita:
Iniciado por darito23 Ver Mensaje
Bueno, resolvi el tema de la siguiente manera, no se sera la mas correcta, pero me funciona...

Hice la consulta a la base direcciones fuera de todos los bucles.
Imprimi todo el contenido en una variable.
Luego, debajo donde estaba originalmente la consulta, quite todo eso y pedi que imprima con echo la variable que contiene las opciones y listo! me muestra la lista igual en todas en solo 2 segundos...

Es la idea total todas las listas son iguales, la seleccion es a mano.

gracias y si alguno tiene un codigo por ahi mejor, lo espero.
Saludos

Damian

Esque los whiles te sobraban, para limitar las consultas usa directamente cuando sea posible sql...

$limite = 30;
mysql_query("SELECT id,name,dir FROM direcciones ORDER BY name LIMIT 0,$limite");

Cuando un script php te cuelga la página lo qu primero hay que mirar son lo bucles ya que las funciones te sueltan un error pero no te las cuelga (a no ser que sea una propia con un bucle mal dentro)
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 12:38.