Foros del Web » Programando para Internet » PHP »

contador de piezas

Estas en el tema de contador de piezas en el foro de PHP en Foros del Web. Buenos días, tengo un lío que en teoría es fácil solucionarlo pero no me digáis por qué no me sale A ver tengo una máquina ...
  #1 (permalink)  
Antiguo 27/01/2017, 02:37
 
Fecha de Ingreso: junio-2011
Mensajes: 151
Antigüedad: 12 años, 10 meses
Puntos: 2
contador de piezas

Buenos días,

tengo un lío que en teoría es fácil solucionarlo pero no me digáis por qué no me sale

A ver tengo una máquina que realiza piezas y ya tengo 1000 en total de las cuales favorables son 850 y las otras 150 son desfavorables.

Ahora para unas pruebas quiero un contador automático y quiero que si es un día par me sume a las favorables 2 unidades y si es impar, que me sume 3 a las favorables y una a las desfavorables.

De momento tengo hecho esto:

Código PHP:
    <?php //counter & responsive counter ?>
    <div id="counter">
        <div id="contador-inside">
            
            <div id="ites-contador-encabezado"></div>
            <?php 
                $favorables
=850;
                
$desfavorables=150;
                
$totales=1000;
                if(
date('d')%2==0){
                    
$favorables=$favorables+2;
                }
                else{
                    
$desfavorables=$desfavorables+1;
                    
$favorables=$favorables+3;
                }    
                
$totales=$favorables+$desfavorables;
                

            
?>
            <div id="numero_total">                
                <span><?php echo $totales?></span>
            </div>
            <div id="favorables">
                <span><?php echo $favorables?></span>
            </div>
            <div id="desfavorables">
                <span><?php echo $desfavorables?></span>
            </div>
        </div>
    </div>
La cosa es que esto si lo pongo a funcionar, hoy que es 27 me sale 1004, 853 y 151 pero mañana que es 28 me saldrá 1002, 852 y 150.

No sé cómo hacer ahora mismo, estoy bloqueadísimo

Un saludo
  #2 (permalink)  
Antiguo 27/01/2017, 02:50
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: contador de piezas

Hola elpre,

Ese código hace lo que dices que tiene que hacer, no entiendo el problema.
  #3 (permalink)  
Antiguo 27/01/2017, 03:10
 
Fecha de Ingreso: junio-2011
Mensajes: 151
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: contador de piezas

Cita:
Iniciado por rbczgz Ver Mensaje
Hola elpre,

Ese código hace lo que dices que tiene que hacer, no entiendo el problema.
Sí y no (eso creo), yo hoy cuelgo el código en donde lo quiero, en este caso es una página hecha en wordpress, y hoy me saldría 1004 totales, 853 favorables y 151 desfavorables. Pero mañana creo que me saldría 1002 totales, 852 favorables y 150 desfavorables y lo que quiero es que mañana me aparezca 1006 totales, 855 favorables y 151 desfavorables.

La cosa es que el código no es que esté mal o así, pero igual necesita alguna variable global o algo, no sé, es que tengo la sensación de que no está bien porque totales, favorables y desfavorables ya tiene un número asignado desde el principio
  #4 (permalink)  
Antiguo 27/01/2017, 04:02
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 163
Antigüedad: 8 años
Puntos: 11
Respuesta: contador de piezas

Cita:
Iniciado por elpre Ver Mensaje
Sí y no (eso creo), yo hoy cuelgo el código en donde lo quiero, en este caso es una página hecha en wordpress, y hoy me saldría 1004 totales, 853 favorables y 151 desfavorables. Pero mañana creo que me saldría 1002 totales, 852 favorables y 150 desfavorables y lo que quiero es que mañana me aparezca 1006 totales, 855 favorables y 151 desfavorables.

La cosa es que el código no es que esté mal o así, pero igual necesita alguna variable global o algo, no sé, es que tengo la sensación de que no está bien porque totales, favorables y desfavorables ya tiene un número asignado desde el principio
Los resultados que quieres que salgan para día PAR por lo que dices son:
150+1=151
850+5=855
151+885=1006

Entonces en el if que entra cuando son días_pares tendrías que hacer:
desfavorables=desfavorables+1
favorables=favorables+5

Pero si entiendo bien lo que quieres hacer, lo que haces en días_pares lo tienes correcto; lo único que quieres que si los valores han sido utilizados en un día impar sean actualizados; utilice éstos nuevos valores después en el siguiente día par. Es decir, NO te sirve favorables=850 si es que ya ha realizado alguna suma de un día impar; porque lo ejecutaría con favorables =850 y no favorables=853

¿Qué tal hacer una función miFunción(favorables,desfavorables, ...) que hace llamadas recursivas y los vas cambiando?

Tal y cómo has mencionado el error es que favorables siempre empieza valiendo el valor 850 y entonces o le sumará 2 o le sumará 3 dependiendo del día que sea; por lo tanto será 852 o 853; pero nunca 855.

Salu2
  #5 (permalink)  
Antiguo 27/01/2017, 04:54
 
Fecha de Ingreso: junio-2011
Mensajes: 151
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: contador de piezas

Una ayudita para ese caso???

Yo es que imagino que habrá que usar variables globales pero no entiendo bien las globales de php.

Y después si quiero hacer un return de favorables y desfavorables en la misma función cómo lo hago??? no se puede hacer dos returns, no???
  #6 (permalink)  
Antiguo 27/01/2017, 07:21
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: contador de piezas

No, no se van a ejecutar 2 return en una misma función, pero puedes retornar un Array con los 2 valores.

Necesitas almacenar el valor de la operación en algún lugar, un archivo txt o una base de datos por ejemplo, para poder hacer la persistencia de los datos a lo largo del tiempo.
__________________
Unset($vida['malRollo']);
  #7 (permalink)  
Antiguo 31/01/2017, 03:51
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 16 años
Puntos: 8
Respuesta: contador de piezas

Cita:
tengo la sensación de que no está bien porque totales, favorables y desfavorables ya tiene un número asignado desde el principio
Claro, lo que falla es precisamente que los valores estan puestos a piñon y nunca te va a incrementar dos dias que es lo que pretendes.

Tienes que almacenar los datos en alguna parte, por ejemplo una base de datos, guardar los valores de cada dia e ir incrementándolos.

Así en plan esquema esto es lo que necesitas

Código PHP:
<?php

// una tabla ejemplo

// CREATE TABLE `contadores` (
// `favorables` varchar(11) NOT NULL,
// `desfavorables` varchar(11) NOT NULL,
// `totales` varchar(11) NOT NULL
// ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
// --
// -- Volcado de datos para la tabla `contadores`
// --
// INSERT INTO `contadores` (`favorables`, `desfavorables`, `totales`) VALUES
// ('850', '150', '1000');

// nos  conectamos a ejemplo.com y al puerto 3307
    
$enlace mysql_connect('ejemplo.com:3307',  'usuario_mysql''contraseña_mysql');  //conecta a la base de datos
    
$result mysql_query("select favorables,desfavorables,totales from contadores"$enlace);    // consulta en la tabla contadores los numeros establecidos
    
$datos mysql_fetch_array($result); //obtiene los datos
    
 
<?php //counter & responsive counter ?>
    <div id="counter">
        <div id="contador-inside">
            
            <div id="ites-contador-encabezado"></div>
            <?php 
                $favorables
=$datos['favorables'];
                
$desfavorables=$datos['desfavorables'];
                
$totales=$datos['totales'];
                if(
date('d')%2==0){
                    
$favorables=$favorables+2;
                }
                else{
                    
$desfavorables=$desfavorables+1;
                    
$favorables=$favorables+3;
                }    
                
$totales=$favorables+$desfavorables;
           
mysql_query("UPDATE contadores SET favorables='".$favorables."',desfavorables='".$desfavorables."',totales='".$totales$enlace); //actualiza el registro de la tabla contadores
          
            
?>
            <div id="numero_total">                
                <span><?php echo $totales?></span>
            </div>
            <div id="favorables">
                <span><?php echo $favorables?></span>
            </div>
            <div id="desfavorables">
                <span><?php echo $desfavorables?></span>
            </div>
        </div>
    </div>
En wordpress esto deberías hacerlo de otra forma, pero en plan solución podrías adaptarlo.

Necesitas crear la base de datos.

Animo!
  #8 (permalink)  
Antiguo 17/02/2017, 04:20
 
Fecha de Ingreso: junio-2011
Mensajes: 151
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: contador de piezas

Buenas de nuevo, siento no haber contestado ya que no me ha llegado notificación de que se había contestado y la verdad que necesitaba la respuesta.

He entendido y después de leer las respuestas creo que con un archivo me es más que suficiente.
He realizado esto:
Código PHP:
            <?php //abrir archivo
                
$file fopen("contador.txt""r");
                while(!
feof($file)) {
                    
$totalesfgets($file);
                    
$favorablesfgets($file);
                    
$desfavorablesfgets($file);
                }
                
fclose($file);
            
?>
            
            
            <?php //hacer calculos
                
if(date('d')%2==0){
                    
$favorables=$favorables+2;
                }
                else{
                    
$desfavorables=$desfavorables+1;
                    
$favorables=$favorables+3;
                }    
                
$totales=$favorables+$desfavorables;
            
?>
                        
            <?php //reescribir archivos con nuevos valores
                
$file fopen("contador.txt""w");
                
fwrite($file$totales PHP_EOL);
                
fwrite($file$favorables PHP_EOL);
                
fwrite($file$desfavorables);
                
fclose($file);
            
?>
            <div id="numero_total">                
                <span><?php echo $totales?></span>
            </div>
            <div id="favorables">
                <span><?php echo $favorables?></span>
            </div>
            <div id="desfavorables">
                <span><?php echo $desfavorables?></span>
            </div>
Y así de primeras en local funciona, pero creo que sigue fallando algo, porque claro cada vez que actualizo se reescribe el archivo. y claro esto me da que no va a funcionar cada día

Si es que el problema radica en que esta página la hizo alguien y este contador pues se hizo de una manera muy rara y me han dicho que lo arregle. El caso es que este código está en la cabecera ((header.php) y cada vez que se entra en la página se debe ver este contador. Entonces no sé yo hasta qué punto va a funcionar esto ya que creo que cada vez que se refresque la página se va a actualizar el archivo, verdad???

PD: la pregunta es la misma en caso de hacer con base de datos
  #9 (permalink)  
Antiguo 17/02/2017, 07:47
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: contador de piezas

Cita:
Iniciado por elpre Ver Mensaje
Buenas de nuevo, siento no haber contestado ya que no me ha llegado notificación de que se había contestado y la verdad que necesitaba la respuesta.
Al principio de los posts, justo debajo del botón "Responder", hay una barra de color verde en la que tiene a final 3 menús desplegables. Si despliegas "Herramientas", te saldrá la opción de "Seguir el tema" y después te pedirá como quieres que sea notificado cuando recibas una respuesta.

Un saludo
  #10 (permalink)  
Antiguo 17/02/2017, 08:25
 
Fecha de Ingreso: junio-2011
Mensajes: 151
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: contador de piezas

Cita:
Iniciado por Triby2 Ver Mensaje
Al principio de los posts, justo debajo del botón "Responder", hay una barra de color verde en la que tiene a final 3 menús desplegables. Si despliegas "Herramientas", te saldrá la opción de "Seguir el tema" y después te pedirá como quieres que sea notificado cuando recibas una respuesta.

Un saludo
Sip, lo sé, pero por ejemplo esta respuesta no me ha llegado y el email lo he revisado y está bien puesto.

A lo que se refiere el post pues a ver si hay algo que se me está escapando, yo creo que es a la hora de ir a leer el archivo contador.txt que no se puede hacer como en php normal. Y claro seguiría con la mismo tema de que al actualizar se actualizaría también el archivo

Etiquetas: contador
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:38.