Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Possibilità d'uso funzione php ogni ora
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • marcocarrieri
      marcocarrieri ModSenior • ultima modifica di

      Bene sembra allora che i minuti li stia prendendo no?

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        the.dream User Attivo • ultima modifica di

        Si, la definizione della differenza in minuti avviene, ho provato anche a modificare a mano il valore nel database e funziona come dovrebbe. Ma il problema è che quando va a scrivere il nuovo orario da quell'errore. Forse non accetta un carattere...

        comunque il database è configurato così:

        CREATE TABLE ore_utilizzo_script (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        ora_utilizzo_script TEXT NOT NULL
        ) ENGINE = MYISAM ;

        CREATE TABLE soldi_utente (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        deposito_soldi TEXT NOT NULL
        ) ENGINE = MYISAM ;

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          the.dream User Attivo • ultima modifica di

          Uppo in cerca di risposte 😕

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • marcocarrieri
            marcocarrieri ModSenior • ultima modifica di

            Il valore che tu scrivi direttamente ed è corretto come è scritto?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              the.dream User Attivo • ultima modifica di

              Ricapitoliamo...

              Codice usato:

              [PHP]$sql="SELECT ora_utilizzo_script FROM ore_utilizzo_script WHERE id='$id'";
              $query = @mysql_query ($sql) or die (mysql_error());

              while ($row = mysql_fetch_array($query)) {

              $ora_ultimo_inserimento="$row[ora_utilizzo_script]"; 
              Function calcolaOre($prima,$seconda) 
              { 
                  $vettore1=explode(":",$prima); 
                  $vettore2=explode(":",$seconda); 
                  $diff=mktime($vettore2[0], $vettore2[1], 0,1,1,2000) - mktime($vettore1[0], $vettore1[1],0,1,1,2000); 
                  $minuti=floor($diff/60); 
                  return $minuti; 
              } 
              $ora_attuale=date("G:i"); 
              $differenza=calcolaOre($ora_ultimo_inserimento,$ora_attuale); 
              if($differenza>60) 
              { 
               
              $deposito_aggiungivo = 3 * 2; 
              
              $sql="UPDATE ore_utilizzo_script SET ora_utilizzo_script=$ora_attuale WHERE id='$id'"; 
                  $query = @mysql_query ($sql) or die (mysql_error()); 
              
              echo "
              $deposito_aggiungivo
              $ora_attuale";
               
              $sql="UPDATE soldi_utente SET deposito_soldi=$deposito_aggiungivo WHERE id='$id'"; 
                  $query = @mysql_query ($sql) or die (mysql_error()); 
              } 
              else 
              { 
                  header('Location: ../errore.php'); 
                  exit; 
              } [/PHP]
              

              L'echo lo ho inserito per sapere che valori mi andava a scrivere... Ed ecco cosa mi dava la pagina internet dopo l'esecuzione del codice:

              6 14:48You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':48 WHERE id='3'' at line 1
              
              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                the.dream User Attivo • ultima modifica di

                Grazie, consultando altri topic ho trovato risposta al problema... Bastava mettere delle ' '... Ringrazio il forum perché si rivela sempre una grande fonte di informazione 🙂

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • marcocarrieri
                  marcocarrieri ModSenior • ultima modifica di

                  Mannaggia era colpa degli apici?

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    the.dream User Attivo • ultima modifica di

                    Si... pultroppo si... Però ora facendo girare lo script ho notato una cosa... E' difficile da spiegare e quindi faccio un esempio...

                    Ora sono le 12:35...
                    Se l'orario precedente è 11:00 (quindi 1 ora e 25 minuti prima) lo script viene eseguito...
                    Se l'orario precedente è 14:00 (quindi 1 ora e 25 minuti dopo [quindi è del giorno prima]) lo script mi invia alla pagina di errore..

                    Quindi se il salvataggio è del giorno prima, non esegue la differenza in modo corretto. Se il salvataggio è dello stesso giorno viene eseguito correttamente.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • marcocarrieri
                      marcocarrieri ModSenior • ultima modifica di

                      Purtroppo non ho fatto i test quindi non saprei... visto che nel campo del database ci potresti salvare la data in formato now quindi estesa.
                      Potresti effettuare il controllo di restrizione solo se il giorno in cui si fa la richiesta è diverso da quello salvato in database.
                      In caso sia lo stesso giorno allora controlli i minuti di differenza.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        the.dream User Attivo • ultima modifica di

                        Il codice che mi hai fornito fa una vera e propria sottrazione (orario attuale - orario ultimo inserimento) e se l'orario precedente è minore di quello attuale la differenza sarà positiva mentre al contrario sarà negativa... Quindi basta mettere che che la differenza in valore assoluto deve essere maggiore di 60... Ora come ora l'if considera vero solo se la differenza è maggiore di 60 e è positiva... Ora la domanda è... Come si fa a considerare il 60 come un valore assoluto??

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • marcocarrieri
                          marcocarrieri ModSenior • ultima modifica di

                          In che senso valore assoluto?
                          Se è negativo diventa positivo?

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • T
                            the.dream User Attivo • ultima modifica di

                            Nel senso che guardiamo cosa facciamo fare all'"if"

                            if($differenza>60)

                            Se la differenza è un numero negativo darà errore...
                            Se la differenza è un numero positivo e maggiore di 60 farò eseguire lo script...

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • marcocarrieri
                              marcocarrieri ModSenior • ultima modifica di

                              Beh ma questo accade solo quando il giorno è diverso o sbaglio?

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • T
                                the.dream User Attivo • ultima modifica di

                                Allora... Per capire cosa nn va ho messo un echo di tutte le variabili...

                                [PHP]
                                echo "$differenza";
                                [/PHP]

                                Con varie prove ho visto che assume valori negativi... e nonostante maggiori di 60 l'if non lo riconosce perché vede un - prima del 60... Basta mettere che l'if non legga il possibile - prima del numero e il codice dovrebbe funzionare 🙂

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • marcocarrieri
                                  marcocarrieri ModSenior • ultima modifica di

                                  Basta che funzioni, mi raccomando fai tutti i test delle possibilità che ci sono.

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • T
                                    the.dream User Attivo • ultima modifica di

                                    OK testato e funziona... grazie 1000 ancora... E alla prossima 😄

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    Caricamento altri post
                                    Rispondi
                                    • Topic risposta
                                    Effettua l'accesso per rispondere
                                    • Da Vecchi a Nuovi
                                    • Da Nuovi a Vecchi
                                    • Più Voti