Foros del Web » Programando para Internet » PHP »

Convertir consulta en array

Estas en el tema de Convertir consulta en array en el foro de PHP en Foros del Web. Buenas, me gustaría saber como puedo convertir una consulta del tipo Código PHP: $consulta = mysqli_query ( $conexion , "select nombre from empleados" )  en un array, de ...
  #1 (permalink)  
Antiguo 09/02/2016, 10:11
 
Fecha de Ingreso: febrero-2015
Mensajes: 10
Antigüedad: 9 años, 2 meses
Puntos: 0
Convertir consulta en array

Buenas, me gustaría saber como puedo convertir una consulta del tipo

Código PHP:
$consulta=mysqli_query($conexion,"select nombre from empleados"
en un array, de tal forma que lo pueda recorrer y asignarle su valor a variables. ¿Si lo recorro puedo asignarle una variable del tipo
Código PHP:
$datos[$i]=$consulta[$i
???

He estado buscando y encuentro soluciones parecidas pero muy complejas para lo que necesito.

Gracias!!
  #2 (permalink)  
Antiguo 09/02/2016, 10:38
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Convertir consulta en array

Php ya provee una función para tal fin mysqli_fetch_array

Del manual
Código PHP:
Ver original
  1. /* array numérico */
  2. $row = mysqli_fetch_array($result, MYSQLI_NUM);
  3. printf ("%s (%s)\n", $row[0], $row[1]);
  4.  
  5. /* array asociativo */
  6. $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
  7. printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
  8.  
  9. /* array numérico y asociativo */
  10. $row = mysqli_fetch_array($result, MYSQLI_BOTH);
  11. printf ("%s (%s)\n", $row[0], $row["CountryCode"]);
  #3 (permalink)  
Antiguo 09/02/2016, 11:41
 
Fecha de Ingreso: febrero-2015
Mensajes: 10
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Convertir consulta en array

Lo había probado, pero me salta el error
Notice: Undefined offset: 1
el valor 0 me lo muestra bien, pero el 1 me sale como si no existiera esa posicionen el array. Si ejecuto la instrucción en el servidor directamente, si me devuelve más de un resultado, así que la posicion 1 debería de reconocermela. Este es mi codigo

Código PHP:
$consultaFaroles mysqli_query($conexion,"select nombre from hermanos where puesto='farol_cruz'"); 
Código PHP:
$row mysqli_fetch_array($consultaFarolesMYSQLI_BOTH);
echo 
$row[0];
echo 
$row[1]; 
en el $row[1] me salta el error.

Gracias por la atención!!
  #4 (permalink)  
Antiguo 09/02/2016, 12:03
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 2 meses
Puntos: 24
Respuesta: Convertir consulta en array

Es mejor que después que conviertas eso en arreglo uses un ciclo foreach para imprimirlo (imagina cuando tengas 1000 registros no los vas a imprimir todos así) te paso un ejemplo:

Código PHP:
Ver original
  1. $consultaFaroles = mysqli_query($conexion,"select nombre from hermanos where puesto='farol_cruz'");
  2. $row = mysqli_fetch_array($consultaFaroles);
  3.  
  4. foreach($row as $fila):
  5.       echo "campo: " . $fila["nombre"] . "<br />";
  6. endforeach;
  #5 (permalink)  
Antiguo 09/02/2016, 17:07
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 3 meses
Puntos: 39
Respuesta: Convertir consulta en array

Te salta el error porque row asigna posiciones a cada una de las columnas de la consulta, es decir.

$row[0] es lo mismo que $row["nombre"]
$row[1] tiene error porque no existe otra tabla aparte de "nombre".

Si tu consulta tuviera dos columnas podrías usar $row[1], sin embargo y por experiencia te recomiendo tratarlos por su nombre, para que tú y el programador que actualice la aplicación, pueda entender qué estabas pensando en esee momento.
  #6 (permalink)  
Antiguo 10/02/2016, 07:45
 
Fecha de Ingreso: febrero-2015
Mensajes: 10
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Convertir consulta en array

Cita:
Iniciado por leonagelic Ver Mensaje
Es mejor que después que conviertas eso en arreglo uses un ciclo foreach para imprimirlo (imagina cuando tengas 1000 registros no los vas a imprimir todos así) te paso un ejemplo:

Código PHP:
Ver original
  1. $consultaFaroles = mysqli_query($conexion,"select nombre from hermanos where puesto='farol_cruz'");
  2. $row = mysqli_fetch_array($consultaFaroles);
  3.  
  4. foreach($row as $fila):
  5.       echo "campo: " . $fila["nombre"] . "<br />";
  6. endforeach;
Bien, entiendo lo que dices y llevas razón, aún así, al intentar ejecutar ese código me sale el siguiente error

) Warning: Illegal string offset 'nombre'

Entiendo que $fila no es un array
  #7 (permalink)  
Antiguo 10/02/2016, 08:09
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 2 meses
Puntos: 24
Respuesta: Convertir consulta en array

Prueba de esta manera:

Código PHP:
Ver original
  1. $consultaFaroles = mysqli_query($conexion,"select nombre from hermanos where puesto='farol_cruz'");
  2. $row = mysqli_fetch_assoc($consultaFaroles);
  3.  
  4. foreach($row as $fila):
  5.       echo "campo: " . $fila["nombre"] . "<br />";
  6. endforeach;

o asi:

Código PHP:
Ver original
  1. /* obtener array asociativo */
  2.     while ($row = mysqli_fetch_assoc($consultaFaroles)) {
  3.          echo "campo: " . $row["nombre"] . "<br />";
  4.  
  5.     }

te dejo un enlace puedas leer un poco mas: mysqli-result.fetch-assoc.

Etiquetas: select, sql, variable
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 07:40.