Foros del Web » Programando para Internet » PHP »

mostrar consulta PHP

Estas en el tema de mostrar consulta PHP en el foro de PHP en Foros del Web. Buenas, es muy facil mi pregunta ¿Cual es la forma mas optima de mostrar en pantalla un solo resultado de un array? Encontre muchas formas ...
  #1 (permalink)  
Antiguo 02/12/2014, 05:49
 
Fecha de Ingreso: agosto-2013
Mensajes: 53
Antigüedad: 10 años, 8 meses
Puntos: 0
mostrar consulta PHP

Buenas, es muy facil mi pregunta


¿Cual es la forma mas optima de mostrar en pantalla un solo resultado de un array?

Encontre muchas formas de hacerlo pero quiero saber cual es la mas optima.

Gracias
  #2 (permalink)  
Antiguo 02/12/2014, 06:33
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: mostrar consulta PHP

Código PHP:
Ver original
  1. <?php
  2.  
  3.     echo $array[2];

¿Será así? No sé si comprendo la pregunta. ¿Te referís a mostrar un item de un array de la forma más eficiente (en términos de memoria, rendimiento, etc)?
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 02/12/2014, 07:00
 
Fecha de Ingreso: agosto-2013
Mensajes: 53
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: mostrar consulta PHP

En realidad me exprese mal.

Quiero la forma mas optima de mostrar un Objeto que viene de una consulta sql.

Yo consulto la base, el bojeto que me devuelve, en terminos de memoria y codigo, cual es la forma mas rapida y simple de mostrarlos? uno o varios resultados.
  #4 (permalink)  
Antiguo 02/12/2014, 07:22
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: mostrar consulta PHP

Ya, comprendo. Realmente depende mucho de tus necesidades. Si tu aplicación es de grandes magnitudes, sí vale la pena que estudies métodos eficientes de conexión e interacción con tu base de datos.

Lo que puedo sugerirte es que uses myqli (version mejorada de las extension de MySQL para PHP)
Ejemplo:
Código PHP:
Ver original
  1. <?php
  2.  
  3.     // Realizar conexión
  4.     $mysqli = new mysqli("localhost", "usuario", "contraseña", "basedatos");
  5.  
  6.     // Verificar conexión
  7.     if ($mysqli->connect_errno) {
  8.         echo "Falló la conexión a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
  9.     }
  10.  
  11.     // Realizar consulta
  12.     $resultado = $mysqli->query("SELECT id FROM test ORDER BY id ASC");
  13.  
  14.     // Mostrar resultados
  15.     $resultado->data_seek(0);
  16.     while ($fila = $resultado->fetch_assoc()) {
  17.         echo " id = " . $fila['id'] . "\n";
  18.     }
  19.    
  20. ?>

mysqli tiene muchas formas de ejecutar sentencias, dependiendo de tus necesidades y de las capacidades de tu aplicación (por ejemplo, algunos métodos de mysqli almacenan todo el resultado en un buffer para liberar recursos apenas se terminan de usar).
Leé acá: http://php.net/manual/es/mysqli.quic...statements.php

Ahí vas a aprender mucho sobre mysqli y vas a poder decidir cuál es la forma más eficiente de acuerdo a tu aplicación :)

Espero te ayude en tu duda. El artículo de la documentación que puse más arriba tiene mucha información bien explicada sobre lo que querés hacer.
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 02/12/2014, 07:32
 
Fecha de Ingreso: agosto-2013
Mensajes: 53
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: mostrar consulta PHP

jeje me resulto de mucha ayuda tu respuesta, realmente.

Me podrias explicar que hacen data_seek y fetch_assoc?

Lei otros metodos que usan foreach tambien puede ser?


De nuevo muchas gracias por la ayuda :D
  #6 (permalink)  
Antiguo 02/12/2014, 07:54
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Respuesta: mostrar consulta PHP

En la ayuda de PHP puedes ver exactamente que es lo que hacen, pero en resumen, data_seek(0) posiciona el puntero de los registros al principio, y el fetch_assoc te transforma el resultado de la query en un array asociativo con todos sus campos.
  #7 (permalink)  
Antiguo 02/12/2014, 07:55
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: mostrar consulta PHP

De la documentación:
- mysqli_stmt::data_seek — Busca una fila arbitraria en un conjunto de resultados de una sentencia
En el ejemplo, lo que hace data_seek es posicionar el cursor en la primer fila (fila 0). No es necesario en el caso del ejemplo, quedó ahí por un error mío porque quité otra parte del ejemplo que invertía el orden de las filas :P

- mysqli_result::fetch_assoc — Obteter una fila de resultado como un array asociativo

Acá hay otro ejemplo que creo que es más claro
Código PHP:
Ver original
  1. <?php
  2. $mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");
  3.  
  4. /* verificar la conexión */
  5. if ($mysqli->connect_errno) {
  6.     printf("Conexión fallida: %s\n", $mysqli->connect_error);
  7.     exit();
  8. }
  9.  
  10. $consulta = "SELECT Nombre, Codigo FROM Ciudades ORDER by ID DESC LIMIT 50,5";
  11.  
  12. /* Realizar consulta */
  13. if ($resultado = $mysqli->query($consulta)) {
  14.  
  15.     /* obtener un array asociativo de cada fila */
  16.     while ($fila = $resultado->fetch_assoc()) {
  17.             /* Mostrar la fila */
  18.         printf ("%s (%s)\n", $fila["Nombre"], $fila["Codigo"]);
  19.     }
  20.  
  21.     /* liberar el conjunto de resultados */
  22.     $resultado->free();
  23. }
  24.  
  25. /* cerrar la conexión */
  26. $mysqli->close();
  27. ?>


También podés usar foreach. En este caso podrías obtener todas las filas (en lugar de fila por fila, con fetch_assoc() ) y recorrer el array asociativo devuelto usando foreach. Para esto usarías fetch_all():

Código PHP:
Ver original
  1. <?
  2. $mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");
  3.  
  4. /* verificar la conexión */
  5. if ($mysqli->connect_errno) {
  6.     printf("Conexión fallida: %s\n", $mysqli->connect_error);
  7.     exit();
  8. }
  9.  
  10. $consulta = "SELECT Nombre, Codigo FROM Ciudades ORDER by ID DESC LIMIT 50,5";
  11.  
  12. /* Realizar consulta */
  13. if ($resultado = $mysqli->query($consulta)) {
  14.  
  15.     /* obtener un array asociativo de todo el resultado */
  16.     $resultado_array = $resultado->fetch_all(MYSQLI_ASSOC); // MYSQLI_ASSOC indica que el array debe ser asociativo
  17.  
  18.     /* Recorrer array de resultados y mostrar fila por fila */
  19.     foreach ($resultado_array as $fila) {
  20.         /* Mostrar la fila */
  21.         printf ("%s (%s)\n", $fila["Nombre"], $fila["Codigo"]);
  22.     }
  23.  
  24.     /* liberar el conjunto de resultados */
  25.     $resultado->free();
  26. }
  27.  
  28. /* cerrar la conexión */
  29. $mysqli->close();
__________________
nahueljose.com.ar
  #8 (permalink)  
Antiguo 02/12/2014, 08:31
 
Fecha de Ingreso: agosto-2013
Mensajes: 53
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: mostrar consulta PHP

Muchisimas gracias, me ayudaron muchisimo ahora lo tengo mucho mas claro.


En resumen, la base de datos devuelve un Objeto, a ese objeto lo convierto en array asociativo y luego utilizo los datos que quiero, cuando quiero, llamando a la array y especificando el indice (Ej: $_POST['indice']).

Etiquetas: Ninguno
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:46.