elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Estoy recorriendo bien?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Estoy recorriendo bien?  (Leído 2,014 veces)
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Estoy recorriendo bien?
« en: 3 Diciembre 2009, 00:41 am »

Hola gente..
Les comento que en la base de datos, tengo una tabla llamada SERVICIOS.
En una web, necesito agregar items, para seleccionar, y cada item, tiene que ser cada uno de los items que aparece en la base de datos en la tabla SERVICIOS...

Me dicen si el codigo está bien?:
he renegado mucho, ahora funciona.. pero les pregunto lo mismo:



Código
  1. <?php
  2. mysql_connect("0000000000", "0000000000", "00000000000");
  3. mysql_select_db("asdfasdfasdfasf");
  4. $res = mysql_query("SELECT tipo FROM servicios");
  5. $cant = mysql_num_rows($res);
  6. for($i=0;$i<$cant;$i++){
  7. $ser = mysql_fetch_array($res);
  8. echo "<input type='checkbox' name='servicios' value='" . ($i+1) . "' />" . $ser[0];
  9. }
  10. ?>

Me refiero a como estoy utilizando el mysql_fetch_array, y eso..



AGREGO:
Mis 1.000 posts!!!


En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: Estoy recorriendo bien?
« Respuesta #1 en: 3 Diciembre 2009, 02:21 am »

Yo lo haria asi:

Código
  1. <?php
  2. mysql_connect("0000000000", "0000000000", "00000000000");
  3. mysql_select_db("asdfasdfasdfasf");
  4. $res = mysql_query("SELECT tipo FROM servicios");
  5. while($row = mysql_fetch_array($res)){
  6.      echo "<input type='checkbox' name='servicios' value='" . ++$i . "' />" . $row['tipo'];
  7. }
  8. ?>

Pero es solo otra forma...y si de tu forma te funciona entonces esta bien..aunque podria ver cual es mejor (mas eficiente), por ejemplo midiendo el tiempo de ejecucion con microtime:
Código
  1. <?php
  2. $tiempo_inicio = microtime(true);
  3.  
  4. // Aca iria todo el script //
  5.  
  6. $tiempo_final = microtime(true);
  7. echo "Tiempo usado: " . ($tiempo_final - $tiempo_inicio);
  8. ?>

Saludos

Edito:

Te lo digo nuevamente, acostumbrate a liberar la memoria usada por las consultas SQL  ;D


« Última modificación: 3 Diciembre 2009, 02:25 am por ❶ » En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Estoy recorriendo bien?
« Respuesta #2 en: 3 Diciembre 2009, 13:51 pm »

Perfecto, lo haré..
Ahora voy a probar que conviene.. Ya te digo...

En la pagina, lo que hago, es repetir ese codigo 2 veces..
hago la liberacion de memoria 2 veces?? total utilizo las mismas variables.. las sobreescribo..
O será mejor hacer la liberacion en la ultima vez que repito ese script?
En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Estoy recorriendo bien?
« Respuesta #3 en: 3 Diciembre 2009, 13:58 pm »

Que cagada..
las 2 oscilan en 0.029
Pero son MUY IGUALES.. de verdad..

Y otra pregunta:
al $row, no le tengo que ahcer el @mysql_free_result($row); ???

Igualmente, utilizo lo que tu dices.. ya que se usan muchas menos variables..
« Última modificación: 3 Diciembre 2009, 14:01 pm por Skeletron » En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: Estoy recorriendo bien?
« Respuesta #4 en: 3 Diciembre 2009, 18:42 pm »

lo que debes liberar con mysql_free_result son a las variables que le asignas el valor de una consulta (con $var = mysql_query();), en ese ejemplo seria $var.

para obtener una edicion mas realista podrias hacer el recorrdio tomando todos los campos de una tabla de 2000 registors, por decir algo.. porque en 10 o 15 no habra demasiada diferencia...;)
En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines