Incrementare variabile in una query SELECT

di il
16 risposte

Incrementare variabile in una query SELECT

Salve a tutti, vorrei sapere se è possibile incrementare una variabile all'interno di una select...vi spiego meglio:
Ho modificato questo calendario
https://www.w3schools.com/howto/tryi...w_css_calenda
Di norma il calendario mostra il mese corrente, a cui aggiungo una voce ad ogni giorno che viene estratta dal database tramite questa query:

codice:

SELECT * FROM calendario WHERE YEAR(Data) = YEAR(CURDATE()) AND MONTH(Data) = MONTH(CURDATE())

E fin qui tutto ok

Adesso dovrei far funzionare le 2 frecce per cambiare mese/anno!
è possibile farlo aggiungendo alla query iniziale: INTERVAL 1 MONTH ed ad ogni click incrementarlo/decrementarlo? (La variabile ovviamente sarebbe il numero di mesi)
Come potrei risolvere? GRAZIE

16 Risposte

  • Re: Incrementare variabile in una query SELECT

    squalo ha scritto:


    Come potrei risolvere? GRAZIE
    Risolvi con una delle funzione per le date che MySql mette a disposizione:
    di seguito alcuni esempi
    http://www.html.it/articoli/funzioni-di-data-e-tempo-con-mysql-3/
  • Re: Incrementare variabile in una query SELECT

    MaxMag64 ha scritto:


    Risolvi con una delle funzione per le date che MySql mette a disposizione [cut]
    Fai attenzione all'overquoting.

  • Re: Incrementare variabile in una query SELECT

    MaxMag64 ha scritto:


    squalo ha scritto:


    Come potrei risolvere? GRAZIE
    Risolvi con una delle funzione per le date che MySql mette a disposizione:
    di seguito alcuni esempi
    http://www.html.it/articoli/funzioni-di-data-e-tempo-con-mysql-3/
    Ma il problema non è estrapolare i dati di un mese specifico...ma far funzionare le frecce in modo da poter andare avanti ed indietro tra i mesi/anni!

    gibra ha scritto:


    MaxMag64 ha scritto:


    Risolvi con una delle funzione per le date che MySql mette a disposizione [cut]
    Fai attenzione all'overquoting.

    In che senso?

    Grazie
  • Re: Incrementare variabile in una query SELECT

    Ma tu vuoi farlo lato Client o lato Server?
  • Re: Incrementare variabile in una query SELECT

    squalo ha scritto:


    gibra ha scritto:


    MaxMag64 ha scritto:


    Risolvi con una delle funzione per le date che MySql mette a disposizione [cut]
    Fai attenzione all'overquoting.

    In che senso?
    Non è indirizzato a te.
    Ma se lo chiedi, allora è il caso che legga anche tu.
  • Re: Incrementare variabile in una query SELECT

    MaxMag64 ha scritto:


    Ma tu vuoi farlo lato Client o lato Server?
    è indifferente...come consigliereste?

    gibra ha scritto:


    Non è indirizzato a te.
    Ma se lo chiedi, allora è il caso che legga anche tu.
    Penso di aver capito...il link non era funzionante!

    Posto il mio codice:
    $oggi = date("Y-m-d");
    $mese = strftime("%B", strtotime($oggi));
    $anno = strftime("%Y", strtotime($oggi));
    $PrimoGiornoDelMese = date('N',mktime(0, 0, 0, date('m'), 1));
    
    $query = $pdo->query("SELECT * FROM $tabella_calendario WHERE YEAR(Data) = YEAR(CURDATE()) AND MONTH(Data) = MONTH(CURDATE())");
    ?>
        <div class="contenitore">      
    <div class="month">     
      <ul>
           <li class="prev">?</li>
            <li class="next">?</li>
        <li style="font-size: 40px">TURNI FARMACIE<br>
          <?php echo $mese; ?><br>
          <span style="font-size:18px"><?php echo $anno; ?></span>
        </li>
      </ul>
    </div>
    
    <ul class="weekdays">
      <li>Lun</li>
      <li>Mar</li>
      <li>Mer</li>
      <li>Gio</li>
      <li>Ven</li>
      <li>Sab</li>
      <li>Dom</li>
    </ul>
    <ul class="days">  
    <?php 
    
    $empty = '<li></li>';
    echo str_repeat($empty, $PrimoGiornoDelMese - 1);
        
      foreach ($query as $o) {
            echo "<li>",strftime("%e", strtotime($o['Data'])),"<br>",$o['Farmacia'],"</li>";
      }
    ?>
    </ul>
  • Re: Incrementare variabile in una query SELECT

    Lato client devi implementare la logica di avanzamento in javascript e ti consiglio di postare nella sezione opportuna. Troverai sicuramente qualcuno meno arrugginito di me.
    Lato server, se ti accontenti di rieseguire la query ad ogni click di freccia beh...al posto dell'*(asterisco) avrai sicuramente un campo data che puoi incrementare/decrementare con una delle funzioni sopra citate.
  • Re: Incrementare variabile in una query SELECT

    MaxMag64 ha scritto:


    Lato client devi implementare la logica di avanzamento in javascript e ti consiglio di postare nella sezione opportuna. Troverai sicuramente qualcuno meno arrugginito di me.
    Lato server, se ti accontenti di rieseguire la query ad ogni click di freccia beh...al posto dell'*(asterisco) avrai sicuramente un campo data che puoi incrementare/decrementare con una delle funzioni sopra citate.
    Grazie MaxMag64....Infatti credo sia più conveniente farlo lato client... javascript o jquery ma non ci riesco...
    
        <input type="button" value="Increase" id="inc" onclick="incNumber()"/>
        <input type="button" value="Decrease" id="dec" onclick="decNumber()"/>
    
        <label id="display"></label>
    
        <script type="text/javascript">
    
        var i = 0;
    
        function incNumber() {
            if (i < 12) {
                i++;
            } else if (i = 12) {}
            document.getElementById("display").innerHTML = i;
        }
    
        function decNumber() {
            if (i > 0) {
                --i;
            } else if (i = 0) {}
            document.getElementById("display").innerHTML = i;
        }
        </script>
    
    Dovrei riuscire ad integrare questo script con la query per poi eseguirla nuovamente... (altrimenti dovrei estrarre tutto il calendario alla prima esecuzione della query e suppongo sia altamente inutile).... Sembra una stupidaggine ma sono giorni che ci provo... inoltre avrei problemi a visualizzare i mesi dell'anno successivo! Possibilmente qualche moderatore che sposti nella sezione giusta GRAZIE
  • Re: Incrementare variabile in una query SELECT

    Puoi usare ajax o jquery appunto o, semplicemente, un campo html di tipo "hidden" che popoli con lo script con il valore di "i" e poi lo recuperi con un GET
  • Re: Incrementare variabile in una query SELECT

    MaxMag64 ha scritto:


    Puoi usare ajax o jquery appunto o, semplicemente, un campo html di tipo "hidden" che popoli con lo script con il valore di "i" e poi lo recuperi con un GET
    Ho provato tante volte con il campo hidden ma non sono riuscito a recuperarne il contenuto ne con get ne con post... Non riesco a capire il motivo...saresti così gentile da scrivermi il codice partendo da quello che ho postato prima (solo quello che riguarda l'estrazione del valore dall'input hidden) Grazie! Magari cosi risolverei velocemente per tutto l'anno corrente... poi risolvo per l'anno successivo.
  • Re: Incrementare variabile in una query SELECT

    Prova con una window.location:
    <script>
    variabile = "a";
    window.location = "pagina.php?var="+variabile;
    </script>
  • Re: Incrementare variabile in una query SELECT

    MaxMag64 ha scritto:


    Prova con una window.location:
    <script>
    variabile = "a";
    window.location = "pagina.php?var="+variabile;
    </script>
    Scusami e cosa dovrei fare con questo?
  • Re: Incrementare variabile in una query SELECT

    Prova a leggere questo esempio:
    http://www.gianpaolofrancescotrotta.altervista.org/passare-variabili-da-javascript-a-php
    Passi la variabile incrementata da javascript, la recuperi e la inserisci nella query
  • Re: Incrementare variabile in una query SELECT

    MaxMag64 ha scritto:


    Prova a leggere questo esempio:
    http://www.gianpaolofrancescotrotta.altervista.org/passare-variabili-da-javascript-a-php
    Passi la variabile incrementata da javascript, la recuperi e la inserisci nella query
    Ci sono quasi....
        function incNumber() {
            if (i < 12) {i++;} 
    		else if (i = 12) {}
            
    		var ciao = i;
       window.location.assign("index.php?var1="+ciao);
    	}
    
    se scrivo così ottengo var1= 1 ma poi il valore non varia ad ogni click...resta sempre fisso, ovvero 1
    Grazieee
Devi accedere o registrarti per scrivere nel forum
16 risposte