Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463

    problema con query x data

    ciao ragazzi dovrei avere un problemino semplice semplice che pero' nn riesco ad uscirne...


    come faccio a fare una query e prendere tutto un mese?

    es nel mio db ho:

    2011 - 01- 05

    2011 - 01 - 07

    2011 - 02 - 03


    devo prendere solo tutto gennaio .. . quindi devono risultare 2 record.

    il campo nel db e date

  2. #2
    SELECT * FROM table WHERE YEAR(campo_data)='2011' AND MONTH(campo_data)='01'

    questa funziona ma sono sicuro che ci saranno persone più esperte di me che ti sapranno dirti query migliori (con Between o altro...)

  3. #3
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    figo funziona! grazie!
    secondo te come posso far andare avanti il calendario?

    nel senso

    << gennaio >>

    bla bla bla bla

    come facccio a cliccare sulle doppie frecce ed andare avanti di mese?

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    ci sono molti script che implementano i calendari, senza dover ogni volta inventare la ruota

    http://php.html.it/script/lista/63/calendari-ed-eventi/

  5. #5
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    lo so pero' a me serve un po particolare xke prendo info da db

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    cmq dipende dal tuo codice, come lo prendi il mese per query in GET o in POST??? e varie ed eventuali. Posta un po' di codice in modo da farci capire meglio

  7. #7
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    sono in un buco nero allora:


    if(isset($_SESSION["mese"]))
    $_SESSION["mese"] = "01";
    else
    $_SESSION["mese"] = $_GET["mese"];

    print $_SESSION["mese"];

    $query_calendario = "select * from calendario where YEAR(data)='" . date("Y") ."' AND MONTH(data)='" . $_SESSION["mese"] ."'";
    $result_calendario=mysql_query($query_calendario);

    print "<div class='paragrafo'>";

    print "<p class='titolo_paragrafo'><h3 class='underline'> Calendario Corsi </h3> </p>";

    print "<div class='testo'>";

    print "<a href=corsi.php?mese=". $_SESSION["mese"] = $_SESSION["mese"] - 1 ." > << </a>";


    if($_SESSION["mese"] == "01")
    print "Gennaio";
    if($_SESSION["mese"] == "02")
    print "Febbraio";
    if($_SESSION["mese"] == "03")
    print "Marzo";
    if($_SESSION["mese"] == "04")
    print "Aprile";
    if($_SESSION["mese"] == "05")
    print "Maggio";
    if($_SESSION["mese"] == "06")
    print "Giugno";
    if($_SESSION["mese"] == "07")
    print "Luglio";
    if($_SESSION["mese"] == "08")
    print "Agosto";
    if($_SESSION["mese"] == "09")
    print "Settembre";
    if($_SESSION["mese"] == "10")
    print "Ottobre";
    if($_SESSION["mese"] == "11")
    print "Novembre";
    if($_SESSION["mese"] == "12")
    print "Dicembre";

    print "<a href=corsi.php?mese=". $_SESSION["mese"] = $_SESSION["mese"] + 1 . " > >> </a>";



    while($row_calendario=mysql_fetch_array($result_ca lendario)){

    print $row_calendario["titolo"];


    }
    print "</div>";
    print "</div> <div class='clear'></div>
    </div>";

    ?>

    il problema è che cosi nn va.... nn so proprio

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    print "<a href=\"corsi.php?mese=".((($_SESSION["mese"] - 1)%12)+1)."\" > << </a>";

    print "<a href=\"corsi.php?mese=". ((($_SESSION["mese"] + 1)%12) +1). "\" > >> </a>";

    questo se vuoi che ci sia un ciclo, ovvero da Dicembre se vai a vanti torni a Gennaio, mentre da Gennaio se va indietro torni a Dicembre

  9. #9
    ma che senso ha utilizzare le sessioni???

  10. #10

    Re: problema con query x data

    Originariamente inviato da izzusan
    ciao ragazzi dovrei avere un problemino semplice semplice che pero' nn riesco ad uscirne...


    come faccio a fare una query e prendere tutto un mese?

    es nel mio db ho:

    2011 - 01- 05

    2011 - 01 - 07

    2011 - 02 - 03


    devo prendere solo tutto gennaio .. . quindi devono risultare 2 record.

    il campo nel db e date
    Male, molto male ( scherzo)
    Un campo che deve contenere una data, di solito, è meglio che sia un INT, nel quale salvi il UTS (Unix Time Stamp), che risulta molto più comodo da gestire nelle query...
    Nel tuo caso sarebbe da calcolare il UTS del primo secondo del primo giorno del mese di interesse e l'ultimo secondo dell'ultimo giorno del mese, e poi fare un "... BETWEEN {$inizio} AND {$fine} ..."
    Tra l'altro usare i UTS rende agevole anche i calcoli per le date nel futuro e nel passato, molto più di quanto sia usare il formato date e convertirlo all'uopo.

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.