Foros del Web » Programando para Internet » PHP »

Pasar de consulta mysql a un array

Estas en el tema de Pasar de consulta mysql a un array en el foro de PHP en Foros del Web. Buen dia. Tengo la siguiente pregunta: Obtengo una consulta mysql, y la quiero pasar a un array: <?php $arre=array(); do { $arre[]= $row_errs['comp1']; $arre[]= $row_errs['indi']; ...
  #1 (permalink)  
Antiguo 03/09/2010, 15:13
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 16 años
Puntos: 0
Pasar de consulta mysql a un array

Buen dia.

Tengo la siguiente pregunta:

Obtengo una consulta mysql, y la quiero pasar a un array:

<?php $arre=array();
do {
$arre[]= $row_errs['comp1'];
$arre[]= $row_errs['indi'];
} while ($row_errs = mysql_fetch_assoc($errs));

echo "<pre>";
print_r($arre);
echo "</pre>";
?>

y da los sig. resultados:

Array
(
[0] => 20
[1] => 13
[2] => 98
[3] => 26
[4] => 97
[5] => 24
[6] => 57
[7] => 25
)

Como debo de modificar el codigo, para obtener los resultados siguientes:

Array
(
[0] => 20,13
[1] => 98,26
[2] => 97,24
[3] => 57,25
)

Gracias por su atencion.
  #2 (permalink)  
Antiguo 03/09/2010, 15:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Pasar de consulta mysql a un array

Concatena.
Código PHP:
Ver original
  1. <?php
  2. $arre = array();
  3. while ($row_errs = mysql_fetch_assoc($errs)){
  4.   $arre[] = $row_errs['comp1'] . ',' . $row_errs['indi'];
  5. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/09/2010, 16:46
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 16 años
Puntos: 0
Respuesta: Pasar de consulta mysql a un array

Gracias abimaelrc, si funca.

Ahora requiero usar la segunda columna de datos, (13,26,24,25) para aplicar una funcion. Mi pregunta es ¿Como puedo identificarla, para poder incluirla en la funcion)?

Saludos.
  #4 (permalink)  
Antiguo 03/09/2010, 18:12
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Pasar de consulta mysql a un array

Pues no entiendo para que quieres crear un array si automaticamente mysql_fetch_assoc($errs) te los divide. Puedes hacer todo el trabajo mientras recorres los datos. No tienes que pasar doble trabajo. ¿Qué es lo que quieres hacer exactamente?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 04/09/2010, 08:28
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 16 años
Puntos: 0
Respuesta: Pasar de consulta mysql a un array

Bien. Tengo una tabla con varios campos, entre ellos indi, econom y comp1.

Primero, se hace una consulta a la base usando econom. Luego, de esa consulta se tienen que eliminar los comp1 que esten repetidos, y a los datos que queden, se toma el indi como referencia.

Intente eso con mysql, pero el codigo resultaba demasiado complejo. Luego me avoque a php, y pense en hacer la consulta mysql, pasar el resultado a un array, y aplicar la funcion unique para eliminar los repetidos.
De hecho consegui una funcion de usuario para array. Esa funcion me es muy util ya que despues tengo que hacer mas consultas a los demas campos de la tabla.

Lo funcion de usuario que tengo es lo siguiente:

<?php

function elimina_duplicados($array, $campo)
{
foreach ($array as $sub)
{
$cmp[] = $sub[$campo];
}
$unique = array_unique($cmp);
foreach ($unique as $k => $campo)
{
$resultado[] = $array[$k];
}
return $resultado;
}
?>

Entonces el meollo del asunto es pasar los datos de la consulta al array. Estoy atorado en eso.

Saludos.
  #6 (permalink)  
Antiguo 04/09/2010, 09:20
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Pasar de consulta mysql a un array

Cita:
pasar el resultado a un array, y aplicar la funcion unique para eliminar los repetidos.
Hace un par de días se habló de este mismo tema. No necesitas array_unique. Podes usar las herramientas propias de SQL: GROUP_BY o DISCTINCT

Con cualquiera de esas dos opciones eliminás duplicados.
  #7 (permalink)  
Antiguo 04/09/2010, 11:30
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 16 años
Puntos: 0
Respuesta: Pasar de consulta mysql a un array

El detalle es que al hacer la consulta con DISTINCT (usando los campos comp1 y econom) no me permite tomar el valor de indi (ya que indi es el campo indice y nunca se repite), que es el que me interesa.

Ya hice un tema en mysql, y amablemente me respondieron, pero como comente anteriormente, me pasaron un codigo muy complejo para mi (chango viejo no aprende maroma nueva); ademas de que con la funcion elimina_duplicados puedo usarla para otras consultas que tengo que hacer posteriormente a otros campos de la misma tabla.

Saludos.
  #8 (permalink)  
Antiguo 04/09/2010, 11:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Pasar de consulta mysql a un array

Pero es que te han dado el código completo... Te recomiendo que hagas lo que te indicaron y leas algún manual para te puedas desenvolver. De eso se trata que tu puedas aprender. Lee sobre consultas y verás que tan claro se te hace lo que te acaban de indicar.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: mysql, pasar
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 21:07.