Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Dal 28 del mese prima al 27 del mese

    Cari amici ecco il mio quesito.

    Il mio mese contabile parte dal 28 del mese precedente fino al 27 del mese in corso

    es. Mese contabile di Giugno è 28, 29, 30, 31 Maggio e 1,2,3,.....25, 26, 27 Giugno.

    Ho un menu da cui poter selezionare il mese

    <select name="mese" id="mese">
    <option value="Gennaio">Gennaio</option>
    <option value="Febraio">Febraio</option>
    <option value="Marzo">Marzo</option>
    <option value="Aprile">Aprile</option>
    <option value="Maggio">Maggio</option>
    <option value="Giugno">Giugno</option>
    <option value="Luglio">Luglio</option>
    <option value="Agosto">Agosto</option>
    <option value="Settembre">Settembre</option>
    <option value="Ottobre">Ottobre</option>
    <option value="Novembre">Novembre</option>
    <option value="Dicembre">Dicembre</option>
    </select>
    <select name="anno_contabile" id="anno_contabile">
    <option value="2007">2007</option>
    <option value="2006">2006</option>
    <option value="2008">2008</option>

    </select>
    <input name="Invia2" type="submit" value="Mostra" />


    Se io faccio:
    Codice PHP:
    SELECT FROM $table WHERE anno_ordine '$anno_contabile' AND mese_ordine '$mese_contabile' 
    logicamente mi da il mese dal 1 al 31

    Cme posso impostare il tutto per far in modo che mi selezioni i giorni > 27 del mese precedenti ed i giorni <28 del mese selzionato???

    Love and Peace !!!

  2. #2
    invece della scritta nome-mese, nel value metti il numerale.

    poi fai la query:

    codice:
     <select name="mese" id="mese">
    <option value="01">Gennaio</option>
    <option value="02">Febraio</option>
    <option value="03">Marzo</option>
    <option value="04">Aprile</option>
    .......
    
    
    
    select * 
    from tabella
    where campo_data between '$anno-$mese-28' - interval 1 month and '$anno-$mese-27'

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ho provato cosi come mi hai detto sostituendo i valori letterali con numerici alla form ma non va.....

    $result = mysql_query("SELECT * FROM $table WHERE data_ordine = '$anno_ordine-$mese_ordine-28'- interval 1 month and '$anno-$mese-27' AND stato_pagamento = 'pagato'",$db);

    non conosco il comando - interval.

    Ho sbagliato qualcosa nella sintasi?

  4. #4
    stampa la query e metti la segnalazione di errore.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    WHERE data_ordine = '$anno_ordine-$m ......

    non = ma BETWEEN

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    NOn mi gira....
    Ti posto tutto il codice.

    <form method="POST" action="<? $PHP_SELF ?>">

    <div align="center">
    <table width="518" border="0" cellspacing="2" bgcolor="#F2F2F2">
    <tr>
    <td width="508" height="30" bgcolor="#CCCCCC"><div align="center">Mostra dati contabili </div></td>
    </tr>
    <tr>
    <td valign="top">
    <div align="center">
    <select name="mese_contabile" id="mese_contabile">
    <option value="01">Gennaio</option>
    <option value="02">Febraio</option>
    <option value="03">Marzo</option>
    <option value="04">Aprile</option>
    <option value="05">Maggio</option>
    <option value="06">Giugno</option>
    <option value="07">Luglio</option>
    <option value="08">Agosto</option>
    <option value="09">Settembre</option>
    <option value="10">Ottobre</option>
    <option value="11">Novembre</option>
    <option value="12">Dicembre</option>
    </select>
    <select name="anno_contabile" id="anno_contabile">
    <option value="2007">2007</option>
    <option value="2006">2006</option>
    <option value="2008">2008</option>

    </select>
    <input name="Invia2" type="submit" value="Mostra" />
    </div></td>
    </tr>
    <tr>
    <td>
    <div align="center"></div></td>
    </tr>
    </table>
    </div>
    </form>
    <div align="center">

    <?
    include("include/dbconnect.php");

    //il mio era cosi e mi printava tutte le righe con il mese
    //$result = mysql_query("SELECT * FROM $table WHERE anno_ordine = '$anno_contabile'
    AND mese_ordine = '$mese_contabile' AND stato_pagamento = 'pagato'",$db);

    //Puo esseere che il nome della variabile form è diversa da quella qui elencata?
    $result = mysql_query("SELECT * FROM $table WHERE data_ordine BETWEEN '$anno_ordine-$mese_ordine-28' - interval 1 month and '$anno-$mese-27'",$db);

    echo "<table width=900 cellpadding=5 cellspacing=1 border=0>";
    $alternate = "2";
    while ($row = mysql_fetch_array($result)) {
    $id = $row["id"];
    $descrizione = $row["descrizione"];
    $taglia = $row["taglia"];
    $colore = $row["colore"];
    $nome_cliente = $row["nome_cliente"];
    $dati_cliente = $row["dati_cliente"];
    $note = $row["note"];
    $email = $row["email"];
    $pagato = $row["pagato"];
    $prezzo = $row["prezzo"];
    $costo_maglia = $row["costo_maglia"];
    $costo_spedizione = $row["costo_spedizione"];
    $metodo_pagamento = $row["metodo_pagamento"];
    $stato_pagamento = $row["stato_pagamento"];
    $tracking_number = $row["tracking_number"];
    $data_ordine = $row["data_ordine"];
    $mese_ordine = $row["mese_ordine"];
    $anno_ordine = $row["anno_ordine"];

    if ($alternate == "1") {
    $color = "#ffffff";
    $alternate = "2";
    }
    else {
    $color = "#efefef";
    $alternate = "1";
    }
    if ($stato_pagamento == "PAGATO") {
    $colortb = "#339900";
    }
    else {
    $colortb = "#FF3300";
    }
    if ($tracking_number == "") {
    $colortr = "#CCCCCC";
    }
    else {
    $colortr = "##66CCFF";
    }
    if ($note != "") {
    $colornote = "#FFCC00";
    }
    else {
    $colornote = "#F4F4F4";
    }
    echo "<tr bgcolor=$color><td bgcolor=#CCCCCC>$id</td><td>$data_ordine $mese_ordine $anno_ordine</td>
    <td bgcolor=$color>$descrizione</td><td>$taglia</td><td>$colore</td><td> <a href='singleentries.php?nome_cliente=$nome_cliente '>$nome_cliente<td bgcolor=#CCCCCC>$dati_cliente</td><td bgcolor=$colortnote>note<td>$email</td><td>$pagato</td><td>$prezzo</td><td>$costo_maglia</td><td>$costo_spedizione</td><td>$metodo_pagamento</td><td bgcolor=$colortb>$stato_pagamento</td></tr>";
    }
    echo "</table>";

  7. #7
    i dati da estrarre sono in $_POST.

    La data nel db deve essere nel formato DATE o DATETIME.

    stampa la query (2) e metti la segnalazione dell'errore (2)

    (2) = seconda richiesta


    $mese_ordine o $mese_contabile ????

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Oddio mi fuma il cervello....

    cambiare il db per me è un po un problema.

    Io ho la data formata da tra variabili:

    data_ordine (da 1 a 31)

    mese_ordine (da 01 a 12) ho seguito le tue indicazioni

    anno ordine (YYYY)

    quanedo inserisco un ordine ho un menu a tendina per il giorno una per il mese e una per l'anno.

    mi chiedevo se posso unire le tre variabili per far funzionare la queury che mi hai suggerito
    in questo modo:

    $data= $mese."-".$anno; // se faccio un echo mi restituisce 04-2007


    Codice PHP:
    $result mysql_query("SELECT * FROM $table WHERE data BETWEEN '$anno_ordine-$mese_ordine-28' - interval 1 month and '$anno-$mese-27'",$db); 
    Che ne dici?

  9. #9
    A ben vedere il tuo codice si capisce che stai usando uno script obsoleto che necessita di register_global in ON ed altre cosette.

    Che dire????

    1) nel database la data deve essere in formato DATE o DATETIME per poter utilizzare le funzioni temporali di MySQL.
    2) questa funzioni dipendono dalla versione di MySQL usata.
    3) Lo script andrebbe aggiornato
    4) quando hai problemi con la query devi stampare la stessa per vedere visivamente come viene risolta e cosa/dove potrebbero esserci incongruenze.
    5) mettere la segnalazione di errore per evidenziare problemi di sintassi SQL

    il resto ...mancia.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Grazie mille piero.mac
    non so se posso settare io il register_global in ON
    in quanto sono in Host su Aru..a
    cmq procedo come suggerito.

    Grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.