Incrementare variabile in una query SELECT

di il
16 risposte

16 Risposte - Pagina 2

  • Re: Incrementare variabile in una query SELECT

    E' ovvio che il valore di var1 lo devi recuperare e riassegnare alla i.
    Come dicevamo all'inizio, il valore che recuperi dalla url passato con il metodo GET o lo appoggi in un campo di tipo "hidden" e poi lo rileggi con GetElementById da javascript oppure lo riagganci direttamente con una funzione di javascript.
    di seguito trovi un esempio interessante
    https://www.mrwebmaster.it/javascript/usare-javascript-recuperare-dati-passati-metodo-get_7449.html
    Script lato client e linguaggi server side non possono interagire direttamente ma possono scambiarsi dati con qualche stratagemma.
  • Re: Incrementare variabile in una query SELECT

    Bene...finalmente ci sono riuscito... adesso però vorrei evitare di usare $_GET per vari motivi:
    1) così come l'ho scritto è soggetto a sql injection
    2) I vari url verranno salvati nel browser con possibilità di confusione dell utente
    3) il refresh non resetta la variabile
    Come potrei ottenere una cosa decente?
    Ovviamente questo codice non tiene conto degli anni successivi (cosa che metterò a posto successivamente).
    Grazie sempre per l'enorme disponibiità
    //Se la variabile $_GET['var1'] non è settata utilizza il numero del mese attuale
    if (!isset($_GET['var1']))  {$_GET['var1']=date("n");}
    
    //Trasforma il numero del mese nel nome corrispondente
    $mese = strftime('%B', mktime(0, 0, 0, $_GET['var1']));
    //Estrai l'anno
    $anno = strftime("%Y", mktime(0, 0, 0, $_GET['var1']));
    
    //Numero del primo giorno del mese (da 1 a 7)
    $PrimoGiornoDelMese= date('N',mktime(0, 0, 0, date($_GET['var1']), 1));
    
    $query = $pdo->query("SELECT * FROM $tabella_calendario WHERE YEAR(Data) = YEAR(CURDATE()) AND MONTH(Data) = ".$_GET['var1']);
    ?>
    <div class="contenitore">      
    <div class="month">     
      <ul>
    	  <li><a class="prev round" onclick="decNumber()">&#10094;</a></li>
    	  <li><a class="next round" onclick="incNumber()">&#10095;</a></li>
        <li style="font-size: 40px">TURNI <?php echo $mese, $anno;?>
        </li>
      </ul>
    </div>
    
    <input type="hidden" id="text"/>
    
    <script type="text/javascript">
    
        var i = <?php echo $_GET['var1']; ?>;
    
        function incNumber() {
            if (i < 12) {i++;}
    		else if (i = 12) {}
         
    document.getElementById("text").value = i;
    window.location.replace('index.php?var1=' + document.getElementById('text').value); }
    
        function decNumber() {
            if (i > 1 ) {--i;} 
    		else if (i = 1) {}
            document.getElementById("text").value = i;
    		window.location.replace('index.php?var1=' + document.getElementById('text').value);}
    </script> 
    
    <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 
    //Crea gli spazi in base al primo giorno del mese
    echo str_repeat('<li></li>', $PrimoGiornoDelMese - 1);
    
    //Mostra gli elementi che mi servono
      foreach ($query as $o) {
    	  $data = strftime("%e", strtotime($o['Data']));
               echo "<li>",$data,"<br>",$o['elemento'],"</li>";
    }?>
Devi accedere o registrarti per scrivere nel forum
16 risposte