Comunidad PHPeros

Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: GuayAngel12 en 24 de Septiembre de 2011, 16:49:48 pm

Título: Ahorra recursos en funciones php-mysql
Publicado por: GuayAngel12 en 24 de Septiembre de 2011, 16:49:48 pm
Buenos días a todos, ésto no es un tutorial en sí, si no un poco de información:

Muchos de vosotros hacéis ésto (incluido yo):

$row = mysql_fetch_array(mysql_query("SELECT * FROM tabla WHERE usuario = 'usuario'"));
       echo $row['campo_a_mostrar'];

La función mysql_fetch_array(); consume 1,85 Kb. aprox.

Mientras que mysql_fetch_assoc(); consume tan solo 1,31 Kb. aprox.

La diferencia es muy pequeña, tan solo 0,54 Kb. aprox. los separan, pero a la hora de tener que implementar en nuestro código muchas funciones como éstas, se nota, y a medida que la BD (Base de datos) crece, se nota.

Puede que muchos de vosotros ya lo supiérais desde un principio, pero hay personas que no lo saben.
Espero que os haya gustado mi información.

Saludos,
Ángel Q.
Título: Re:Ahorra recursos en funciones php-mysql
Publicado por: ferdi342 en 24 de Septiembre de 2011, 17:25:39 pm
Información útil, la aplicaré, gracias.
Título: Re:Ahorra recursos en funciones php-mysql
Publicado por: GuayAngel12 en 24 de Septiembre de 2011, 17:29:33 pm
De nada ferdi342, aquí estamos todos para ayudar.

Saludos,
Ángel Q.
Título: Re:Ahorra recursos en funciones php-mysql
Publicado por: Physlet en 24 de Septiembre de 2011, 18:13:03 pm
Lo que pasa es que usan las funciones sin saber exactamente lo que hace.
mysql_fetch_array() devuelve tus datos dos veces, pero con distinto índice/clave/key o como le quieran llamar. Recuerden que están los arreglos asociativos y los arreglos con índices numéricos.

Con $hola['pais'] estoy accediendo a un valor en un arreglo asociativo
Con $hola[0] estoy accediendo a un valor en un arreglo con índice numérico

mysql_fetch_array() te los trae de las dos formas. Es decir, si en una tabla de tu bases de datos tienes los campos: "nombre" y "apellido", al hacerle el fetch traerá esto:

Código: [Seleccionar]
[nombre] => "Rafael"
[0] => "Rafael"
[apellido] => "Agostini"
[1] => "Agostini"

Pero, si usas ahora solo el mysql_fetch_assoc() traerá esto:
Código: [Seleccionar]
[nombre] => "Rafael"
[apellido] => "Agostini

Y si usas mysql_fetch_row() traerá esto:
Código: [Seleccionar]
[0] => "Rafael"
[1] => "Agostini"

A mí parecer la más óptima sería mysql_fetch_row(), pero eso depende mucho del uso que le vayan a dar.

Y si tienen flojera "aprenderse" tantas funciones, pueden usar el mysql_fetch_array() con otro parámetro adicional:

Para arreglos asociativos:
mysql_fetch_array($result, MYSQL_ASSOC);

Para arreglos numéricos:
mysql_fetch_array($result, MYSQL_NUM);
Título: Re:Ahorra recursos en funciones php-mysql
Publicado por: GuayAngel12 en 24 de Septiembre de 2011, 18:17:10 pm
Gracias por chafarme el tutorial. (Es brooma!  :P)

Gracias por la información, ésta información ya la conocía, pero le puede ser útil para otras personas.

Saludos,
Ángel Q.
Título: Re:Ahorra recursos en funciones php-mysql
Publicado por: AlejandroKrevan en 25 de Septiembre de 2011, 01:11:06 am
Gracias por la información, voy a implementarlo... estoy tratando de optimizar en toda medida posible mi web :)
Título: Re:Ahorra recursos en funciones php-mysql
Publicado por: Siquillote en 25 de Septiembre de 2011, 21:29:36 pm

Hola,

Muchas gracias Physlet por la explicacion, muy detallada!. Karma +.

Un saludo,
Siquillote.
Título: Re:Ahorra recursos en funciones php-mysql
Publicado por: GuayAngel12 en 25 de Septiembre de 2011, 21:47:08 pm
Sinceramente, sienta un pelín mal que publiques algo y empiecen a hablar de otras cosas. Es solo una opinión eeh.

Saludos,
Ángel Q.
Título: Re:Ahorra recursos en funciones php-mysql
Publicado por: Physlet en 26 de Septiembre de 2011, 04:41:49 am
Sinceramente, sienta un pelín mal que publiques algo y empiecen a hablar de otras cosas. Es solo una opinión eeh.
Mi post fue para complementar la información que nos has compartido. A menos que con este tema solo buscaras el centro de atención, cosa que dudo porque entiendo que tu interés es ayudar.

Y creo que no se está hablando de otra cosa, de hecho es de lo mismo solo que explicado un poco más profundo del por qué sucede.