Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como filtrar grafico

Estas en el tema de Como filtrar grafico en el foro de PHP en Foros del Web. Hola, estoy basándome en un script que me encontré por la red que era justo lo que necesitaba. http://tutorialzine.com/2013/01/charts-jquery-ajax/ Un gráfico que puedes ajustar los ...
  #1 (permalink)  
Antiguo 07/04/2013, 09:11
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 15 años, 4 meses
Puntos: 2
Pregunta Como filtrar grafico

Hola, estoy basándome en un script que me encontré por la red que era justo lo que necesitaba.
http://tutorialzine.com/2013/01/charts-jquery-ajax/
Un gráfico que puedes ajustar los días a visualizar.
Pero no encuentro la manera de filtrar datos de usuario. Me explico.
En la base de datos se almacenan: fecha, puntos, idusuario.

Y lo que necesito es que cada usuario solo pueda ver su gráfica (por idusuario)

EJ: mostrar datos solo de idusuario = 1

El script original es: (es donde se hace la consulta)
Código PHP:
<?php
header
('Content-Type: application/json');

// Set up the ORM library
require_once('setup.php');

if (isset(
$_GET['start']) AND isset($_GET['end'])) {
    
    
$start $_GET['start'];
    
$end $_GET['end'];
    
$data = array();

    
// Select the results with Idiorm
    
$results ORM::for_table('graficousuario')
            ->
where_gte('fecha'$start)
            ->
where_lte('fecha'$end)
            ->
order_by_desc('fecha')
            ->
find_array();
    
    foreach (
$results as $key => $value) {
    
    
        
$data[$key]['label'] = $value['fecha'];
        
$data[$key]['value'] = $value['pts'];
    
}
    echo 
json_encode($data);
}
?>
Intente poner:
Código PHP:
$idrow '1';
    
// Build a new array with the data
        
$result mysql_query('SELECT id FROM graficousuario WHERE idusuario=\''.$idrow.'\'');   

    
   
    
    foreach (
$results as $key => $value) {
    while (
$pass mysql_fetch_row($result)){
    
        
$data[$key]['label'] = $value['fecha'];
        
$data[$key]['value'] = $value['pts'];
    
}} 
Pero sin resultado...
Me pueden echar una mano? Gracias!
  #2 (permalink)  
Antiguo 07/04/2013, 10:35
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: Como filtrar grafico

Cita:
Iniciado por quiquebg Ver Mensaje
Hola, estoy basándome en un script que me encontré por la red que era justo lo que necesitaba.
http://tutorialzine.com/2013/01/charts-jquery-ajax/
Un gráfico que puedes ajustar los días a visualizar.
Pero no encuentro la manera de filtrar datos de usuario. Me explico.
En la base de datos se almacenan: fecha, puntos, idusuario.

Y lo que necesito es que cada usuario solo pueda ver su gráfica (por idusuario)

EJ: mostrar datos solo de idusuario = 1

El script original es: (es donde se hace la consulta)
Código PHP:
<?php
header
('Content-Type: application/json');

// Set up the ORM library
require_once('setup.php');

if (isset(
$_GET['start']) AND isset($_GET['end'])) {
    
    
$start $_GET['start'];
    
$end $_GET['end'];
    
$data = array();

    
// Select the results with Idiorm
    
$results ORM::for_table('graficousuario')
            ->
where_gte('fecha'$start)
            ->
where_lte('fecha'$end)
            ->
order_by_desc('fecha')
            ->
find_array();
    
    foreach (
$results as $key => $value) {
    
    
        
$data[$key]['label'] = $value['fecha'];
        
$data[$key]['value'] = $value['pts'];
    
}
    echo 
json_encode($data);
}
?>
Intente poner:
Código PHP:
$idrow '1';
    
// Build a new array with the data
        
$result mysql_query('SELECT id FROM graficousuario WHERE idusuario=\''.$idrow.'\'');   

    
   
    
    foreach (
$results as $key => $value) {
    while (
$pass mysql_fetch_row($result)){
    
        
$data[$key]['label'] = $value['fecha'];
        
$data[$key]['value'] = $value['pts'];
    
}} 
Pero sin resultado...
Me pueden echar una mano? Gracias!
Pues me parece que tu error es porque intentas hacer la consulta de id del usuario como si fuera una cadena y en realidad es un número.

Salvo que hayas colocado id como varchar no es necesario ponerle comillas y colocar simple y llanamente where idusuario=1

Igual yo lo intentaria hacer como te muestran el codigo de ejemplo usando json, es mas claro de usar y mas facil de seguir, simplemente deberias pasarle por get el id del usuario como parámetro adicional.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 07/04/2013, 10:37
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Como filtrar grafico

idusuario=\''.$idrow.'\'' es lo que gasto siempre para todas las consultas que realizo y siempre siempre siempre funciona el problema estará en mezclar el foreach y el while.
  #4 (permalink)  
Antiguo 07/04/2013, 10:42
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: Como filtrar grafico

Cita:
Iniciado por quiquebg Ver Mensaje
idusuario=\''.$idrow.'\'' es lo que gasto siempre para todas las consultas que realizo y siempre siempre siempre funciona el problema estará en mezclar el foreach y el while.
Collons! si $results no es igual a $result

Código PHP:
$result mysql_query('SELECT id FROM graficousuario WHERE idusuario=\''.$idrow.'\'');  

foreach (
$results as $key => $value) { 
Ahi esta tu error. Igual deberias revisar las comillas del $idrow porque me parece que esta mal (digo me parece no lo aseguro). Parece que se te fue una comilla de mas. Si tu consulta siempre siempre siempre funciona no estarias preguntando. Si yo esta es la hora en que me equivoco en estas cosas sencillas no te cierres a la banda. La mejor manera de encontrar a los errores es no dar por sentado que algo siempre funciona sin lugar a dudas.
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 07/04/2013 a las 10:53
  #5 (permalink)  
Antiguo 07/04/2013, 10:55
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Como filtrar grafico

No, el fallo no es ese.
Veamos. Lo que pretendia yo es una consulta dentro de otra, pero eso esta mal echo así que de: $result = mysql_query('SELECT id FROM graficousuario WHERE idusuario=\''.$idrow.'\'');
hay que olvidarse.

Se tiene que poder hacer algo como esto:
$results = ORM::for_table('graficousuario') WHERE idusuario = '1'
->where_gte('fecha', $start)
->where_lte('fecha', $end)
->order_by_desc('fecha')
->find_array();

El problema es el ORM que no se como hacer un WHERE con ORM
  #6 (permalink)  
Antiguo 07/04/2013, 11:06
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Como filtrar grafico

Solucionado.
Seria:
$usuario = '40';


$results = ORM::for_table('graficousuario')
->where_gte('fecha', $start)
->where_lte('fecha', $end)
->where('idusuario', $usuario)
->order_by_desc('fecha')
->find_array();

Gracias de todas formas :)

Etiquetas: filtrar, grafico, mysql, select
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 09:43.