Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Operar valores con php obtenidos de una consulta mysql

Estas en el tema de Operar valores con php obtenidos de una consulta mysql en el foro de PHP en Foros del Web. Hola amig@s, mediante una consulta mysql presento una tabla de valores en php, y ya que se me hace muy engorroso operar desde mysql, me ...
  #1 (permalink)  
Antiguo 17/06/2015, 02:50
 
Fecha de Ingreso: abril-2015
Mensajes: 45
Antigüedad: 9 años
Puntos: 0
Operar valores con php obtenidos de una consulta mysql

Hola amig@s, mediante una consulta mysql presento una tabla de valores en php, y ya que se me hace muy engorroso operar desde mysql, me gustaría saber cómo operar los valores obtenidos en la tabla mediante php.

Ahí va mi ejemplo, hago la consulta "SELECT numero,tiempo FROM datos ORDER BY tiempo ASC" y la presenteo en php mediante:
WHILE ($row = mysql_fetch_array($result)){
echo "<tr><td>".$row['numero']."</td><td>".$row['tiempo']."</td></tr>";
}

Y me presenta algo como lo siguiente:
Numero Tiempo
....7..........6
....3..........8
....10........13

Lo que intento es añadir una tercera columna que me represente la diferencia con la fila anterior. Por ejemplo, en la primera fila no hay fila anterior pues es cero. En la segunda fila del ejemplo la diferencia sería (8-6=2). En la tercera fila del ejemplo sería (13-8=5).
¿Se puede hacer mediante php directamente? Intento no tener que añadir campos nuevos a la tabla mysql para no hacer UPDATES, de ahí que busque hacerlo en PHP.
  #2 (permalink)  
Antiguo 17/06/2015, 03:15
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Operar valores con php obtenidos de una consulta mysql

Yo lo haría guardando en una variable el valor de la linea anterior:

Código PHP:
$last_time 0;
WHILE (
$row mysql_fetch_array($result)){
    
$num $row['numero'];
    
$time $row['tiempo'];

    
$result $time $last_time;

    echo 
"<tr>
            <td>"
.$num."</td>
            <td>"
.$time."</td>
            <td>"
.$result."</td>
        </tr>"
;

    
$last_time $time;

  #3 (permalink)  
Antiguo 17/06/2015, 03:34
 
Fecha de Ingreso: abril-2015
Mensajes: 45
Antigüedad: 9 años
Puntos: 0
Respuesta: Operar valores con php obtenidos de una consulta mysql

Cita:
Iniciado por jpint Ver Mensaje
Yo lo haría guardando en una variable el valor de la linea anterior:

Código PHP:
$last_time 0;
WHILE (
$row mysql_fetch_array($result)){
    
$num $row['numero'];
    
$time $row['tiempo'];

    
$result $time $last_time;

    echo 
"<tr>
            <td>"
.$num."</td>
            <td>"
.$time."</td>
            <td>"
.$result."</td>
        </tr>"
;

    
$last_time $time;

Un pequeño detalle, con este código en la primera fila me aparece (6-0=6), cuando en realidad debería aparecer cero...debe ser sencillo solucionarlo pero no doy con la tecla...
  #4 (permalink)  
Antiguo 17/06/2015, 03:40
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Operar valores con php obtenidos de una consulta mysql

Bastaría con añadirle que compruebe que el valor anterior no sea 0:

Código PHP:
if($last_time==0) {
    
$result 0;
}else{
    
$result $time $last_time;

  #5 (permalink)  
Antiguo 17/06/2015, 03:44
 
Fecha de Ingreso: abril-2015
Mensajes: 45
Antigüedad: 9 años
Puntos: 0
Respuesta: Operar valores con php obtenidos de una consulta mysql

Cita:
Iniciado por jpint Ver Mensaje
Bastaría con añadirle que compruebe que el valor anterior no sea 0:

Código PHP:
if($last_time==0) {
    
$result 0;
}else{
    
$result $time $last_time;

Se ve que hoy estoy negada con lo sencillo que era...muchas gracias!!
  #6 (permalink)  
Antiguo 17/06/2015, 03:50
 
Fecha de Ingreso: abril-2015
Mensajes: 45
Antigüedad: 9 años
Puntos: 0
Respuesta: Operar valores con php obtenidos de una consulta mysql

Aprovecho para preguntar una pequeña variante...
¿Y si la diferencia que quiero obtener es siempre con respecto a la primera fila?
En el ejemplo la primera fila sería cero.
La segunda fila sería 8-6=2
La tercera fila sería 13-6=7
  #7 (permalink)  
Antiguo 17/06/2015, 03:56
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Operar valores con php obtenidos de una consulta mysql

Simplemente utilizar una nueva variable y no refrescarla en cada interacción del bucle, esto lo puedes hacer de muchas maneras, por ejemplo usando un contador a 0:

Código PHP:
$last_time 0;
//nuevo
$cont 0;
$dif_estatica 0;
WHILE (
$row mysql_fetch_array($result)){
    
$num $row['numero'];
    
$time $row['tiempo'];

    if(
$last_time==0) {
        
$result 0;
    }else{
        
$result $time $last_time;
    }

    
//nuevo - solo se ejecutara la primera vez
    
if($cont==0$dif_estatica $time;

    
$result2 $time $dif_estatica;


    echo 
"<tr>
            <td>"
.$num."</td>
            <td>"
.$time."</td>
            <td>"
.$result."</td>
            <td>"
.$result2."</td>
        </tr>"
;

    
$last_time $time;
    
//nuevo
    
$cont++;

  #8 (permalink)  
Antiguo 17/06/2015, 03:58
 
Fecha de Ingreso: abril-2015
Mensajes: 45
Antigüedad: 9 años
Puntos: 0
Respuesta: Operar valores con php obtenidos de una consulta mysql

Muchas gracias!!

Etiquetas: mysql, select, tabla
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 02:40.