Visualizzazione dei risultati da 1 a 10 su 10

Discussione: la Funzione Now()

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    330

    mysql:la Funzione Now()

    Salve a tutti, come si fa ad estrarre gli ultimi film che ho inserito nel mese corrente?
    Io ho fatto

    $query=mysql_query("select * from film where mese=Now()") or die(mysql_error());

    E non mi stampa niente, nel senso che non me li trova....

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select * from film 
    where extract(year_month from campo_data) = extract(year_month from curdate() )

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    330
    scusa ma in questo modo

    $query=mysql_query("select * from film
    where extract(year_month from mese) = extract(year_month from curdate())") or die(mysql_error());


    dovrebbe mettere tutti i film che ho inserito nel mese di Gennaio, ed invece non me li stampa...(la stampa la faccio dopo)
    Grazie

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da guliver81
    scusa ma in questo modo

    $query=mysql_query("select * from film
    where extract(year_month from mese) = extract(year_month from curdate())") or die(mysql_error());


    dovrebbe mettere tutti i film che ho inserito nel mese di Gennaio, ed invece non me li stampa...(la stampa la faccio dopo)
    Grazie
    Ma il campo mese cosa contiene? Immagino non una data.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    330
    contiene il mese, ma io il mese lo scrivo con la prima lettera grande. La select lo confronta con tutte le lettere piccole(ad esempio gennaio e non Gennaio come l'ho scritto io)??

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da guliver81
    contiene il mese, ma io il mese lo scrivo con la prima lettera grande. La select lo confronta con tutte le lettere piccole(ad esempio gennaio e non Gennaio come l'ho scritto io)??
    La query che ti ho scritto presupponeva che il campo fosse di tipo date e confrontava mese-anno della data corrente e del campo.

    Prova così (è una soluzione di fortuna )

    codice:
    select * from film where mese = 
    elt(month(curdate()),
    'Gennaio','Febbraio','Marzo',....)

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    330
    Scusa, ma facendo cosi' mi restituisce tutti i film di tutti i mesi, invece non quelli del mese corrente e dell'anno corrente...Come si faaaaaaaaaa? VVoVe:

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da guliver81
    Scusa, ma facendo cosi' mi restituisce tutti i film di tutti i mesi, invece non quelli del mese corrente e dell'anno corrente...Come si faaaaaaaaaa? VVoVe:
    Se siamo a gennaio la query ti restituirà tutti i record in cui nel campo mese hai scritto gennaio. Se il campo mese contiene il mese in formato letterale l'anno da dove lo dovrebbe ricavare?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    330
    allora io ho un'altro campo anno.E poi facendo in quel modo mi restituisce tutti i mesi e nn quello relativo al mese corrente
    Grazie

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da guliver81
    E poi facendo in quel modo mi restituisce tutti i mesi e nn quello relativo al mese corrente
    codice:
    CREATE TABLE `film` (
      `id` int(11) NOT NULL auto_increment,
      `film` varchar(50) default NULL,
      `mese` varchar(20) default NULL,
      `anno` smallint(6) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    /*Data for the table `film` */
    
    insert into `film` (`id`,`film`,`mese`,`anno`) values (1,'film1','Gennaio',2007);
    insert into `film` (`id`,`film`,`mese`,`anno`) values (2,'film2','Febbraio',2007);
    insert into `film` (`id`,`film`,`mese`,`anno`) values (3,'film3','Gennaio',2006);
    
    select * from film where mese = 
    elt(month(curdate()),
    'Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio',
    'Agosto','Settembre','Ottobre','Novembre','Dicembre')
    // id 1 e 3
    
    
    select * from film where mese = 
    elt(month(curdate()),
    'Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio',
    'Agosto','Settembre','Ottobre','Novembre','Dicembre') and anno = year(curdate())
    // id 1


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.