Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sacar resultado de while

Estas en el tema de Sacar resultado de while en el foro de PHP en Foros del Web. Buenas tardes. Tengo un pequeño problema y espero me puedan ayudar: Tengo un código que me devuelve los datos contenidos en una base: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 30/09/2015, 16:39
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Sacar resultado de while

Buenas tardes.
Tengo un pequeño problema y espero me puedan ayudar:
Tengo un código que me devuelve los datos contenidos en una base:
Código PHP:
Ver original
  1. while($row = mysql_fetch_assoc($sql)){
  2.                     $nombre = $row['pagadora'];
  3.                 };
  4.                    $nombre = array($nombre=>0);
  5.                    header('Content-type:application/json; charset=utf-8');
  6.                    echo json_encode($nombre);
Funciona bien, me devuelve el valor como un objeto, pero solo me devuelve el último,
Algo asi: {"dato5":0}
y si hago esto:
Código PHP:
Ver original
  1. while($row = mysql_fetch_assoc($sql)){
  2.                     $nombre = $row['pagadora'];
  3.                         $nombre = array($nombre=>0);
  4.                         echo json_encode($nombre);
  5.                 };
  6.                    header('Content-type:application/json; charset=utf-8');
Me devuelve esto:
{"dato1":0}{"dato2":0}{"dato3":0}{"dato4":0}{"dato 5":0}

Pero en si lo que necesito es esto:
{"dato1":0, "dato2":0, "dato3":0, "dato4":0, "dato5":0}.

Pero con while lo veo imposible, eh intentado esto:
Código PHP:
Ver original
  1. $data = array();
  2. while($row = mysql_fetch_assoc($sql)){
  3.                     $nombre = array($row['pagadora']=>0);
  4.                         $data[] = $nombre;
  5.                 };
  6.                    header('Content-type:application/json; charset=utf-8');
  7.                    echo json_encode($data);
Pero no me funciona. Alguién sabe como puedo recuperar el resultado del ciclo fuera de este o algún otro método más efectivo?

Muchas gracias por su atención!
  #2 (permalink)  
Antiguo 30/09/2015, 16:56
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Sacar resultado de while

Para ese resultado tienes que definir tu script de la siguiente manera.
Código PHP:
Ver original
  1. $aResult=array();
  2. while($row = mysql_fetch_assoc($sql)){
  3.     $nombre=$row['pagadora'];
  4.     $aResult[$nombre]=0;
  5. }
  6.  //header('Content-type:application/json; charset=utf-8');
  7. echo json_encode($aResult);
Saludos.
  #3 (permalink)  
Antiguo 30/09/2015, 17:02
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Sacar resultado de while

No me funcionó! Me hace lo mismo que en mis intentos, hay alguna forma de sacar el valor del while del ciclo?
  #4 (permalink)  
Antiguo 30/09/2015, 17:13
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Sacar resultado de while

Cita:
Iniciado por petezajot Ver Mensaje
No me funcionó! Me hace lo mismo que en mis intentos, hay alguna forma de sacar el valor del while del ciclo?
Seguro?
Yo obtengo el resultado que solicitabas:
con el echo json_encode($aResult);
{"dato1":0,"dato2":0,"dato3":0}
  #5 (permalink)  
Antiguo 30/09/2015, 17:28
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Sacar resultado de while

De hecho copie y pegué tu código, y no me resultó.
Así lo tengo:
Código PHP:
Ver original
  1. $aResult=array();
  2.                 while($row = mysql_fetch_assoc($sql)){
  3.                     $nombre=$row['pagadora'];
  4.                     $aResult[$nombre]=0;
  5.                 };
  6.                    //$nombre = array($nombre=>0);
  7.                    //header('Content-type:application/json; charset=utf-8');
  8.                    echo json_encode($aResult);
  #6 (permalink)  
Antiguo 30/09/2015, 17:47
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Sacar resultado de while

Cita:
Iniciado por petezajot Ver Mensaje
De hecho copie y pegué tu código, y no me resultó.
Así lo tengo:
Código PHP:
Ver original
  1. $aResult=array();
  2.                 while($row = mysql_fetch_assoc($sql)){
  3.                     $nombre=$row['pagadora'];
  4.                     $aResult[$nombre]=0;
  5.                 };
  6.                    //$nombre = array($nombre=>0);
  7.                    //header('Content-type:application/json; charset=utf-8');
  8.                    echo json_encode($aResult);
¿Y si me dices que te imprime lo que te mande? Ah! por cierto, deshabilite la línea del header porque yo no la necesito...
  #7 (permalink)  
Antiguo 01/10/2015, 09:21
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Sacar resultado de while

Devuelve vació, aún cuando dejo el header descomentado (Ya que en mi caso si es necesario).
  #8 (permalink)  
Antiguo 01/10/2015, 09:31
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Sacar resultado de while

Cita:
Iniciado por oggy_15_3 Ver Mensaje
¿Y si me dices que te imprime lo que te mande? Ah! por cierto, deshabilite la línea del header porque yo no la necesito...
Más preciso, obtengo solo esto []. Tal ves sea el while el que en si me estorba, hay algún otro método?
  #9 (permalink)  
Antiguo 01/10/2015, 10:03
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Sacar resultado de while

Para el resultado que quieres, no.
Algo me dice que no está entrando al while, intenta impresiones dentro del while

$nombre=$row['pagadora'];
echo $nombre.",";

No conozco otra manera de obtener el resultado que deseas.
  #10 (permalink)  
Antiguo 01/10/2015, 12:22
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Sacar resultado de while

Por fin lo resolví! Es un método poco ortodoxo, pero me funcionó a la perfección! lo comparto por si alguien se ve envuelto en el mismo problema que yo:
Código PHP:
Ver original
  1. $contar = mysql_num_rows($sql);
  2. $count == 0;
  3.                 while($row = mysql_fetch_assoc($sql)){
  4.                     $count = $count+1;
  5.                     $nombre = utf8_encode($row['pagadora']);
  6.                     $data = json_encode($nombre);
  7.                     if($data != "" && $count < $contar){
  8.                     $data =  $data.":0, ";
  9.                     echo $data;
  10.                     }else if($data != "" && $count >= $contar){
  11.                         $data =  $data.":0";
  12.                     echo $data;
  13.                     }
  14.                 }; $count++;
  15.                 header('Content-type:application/json; charset=utf-8');
Y funcionó a la perfección! Gracias por haberse tomado su tiempo y responderme.

Saludos!

Etiquetas: mysql, resultado, sql
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 11:37.