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

    [MySql] Estrazione mese da una data

    Salve a tutti, ho già controllato altre discussioni e provato tutte le soluzioni disponibili sul web, ma non riesco a risolvere il mio problema. Sono autodidatta quindi è probabile che la soluzione sia semplice ma non riesco a vederla.

    Gestisco un sito in cui sono iscritti degli utenti e sto cercando di creare una sorta di anagrafica/calendario dove estrarre gli utenti a seconda del mese di iscrizione. Sulla mia pagina clicco sui pulsanti 01 02 03 (sarebbe meglio Gennaio, Febbraio, ma non ci sono ancora arrivato) per avere la lista degli utenti iscritti in quel mese in ordine di giorno.

    Ho difficoltà ad estrarre il mese dalla data. Ho provato MONTH, DATEPART, aggiunto DECLARE e SET e anche la funzione explode per suddividere la data ma mi esce sempre "nessun risultato". Il mio codice è questo:

    Prima parte:
    '$meseiscrizione'=$_REQUEST['month'];

    <form action="main.php?page=calendar" target="_top" method="POST">
    <input type="hidden" name="cercadata" value="2" />
    <tr><td valign="top" colspan="3"><div align="center">

    <input class="pulsante_mese" type="submit" name="month" value="1980-07-04" >
    <input class="pulsante_mese" type="submit" name="month" value="02" >
    <input class="pulsante_mese" type="submit" name="month" value="Marzo" >
    Seconda parte:
    $query = "SELECT nome, data_iscrizione FROM utente WHERE MONTH (data_iscrizione) LIKE '$meseiscrizione' ORDER BY DAY (data_iscrizione), nome LIMIT 0, 100";
    $result = mysql_query($query);
    Sopra ho lasciato i miei vari tentativi. Cercadata con value 1 è la ricerca per nome e funziona correttamente; se metto WHERE data_iscrizione LIKE... funziona correttamente la ricerca che trova la data per intero (quindi accede al dato), ma se clicco su 02 non escono risultati. Dove sbaglio?

    Grazie per il vostro tempo.

  2. #2
    quale è il tipo di campo della colonna "data_iscrizione"?

  3. #3
    Originariamente inviato da optime
    quale è il tipo di campo della colonna "data_iscrizione"?
    E' un campo tipo DATE (no datetime), solo data senza orario. Non è la classica data di iscrizione, ma una simile.

  4. #4
    scusa, l'ho visto solo adesso...

    MONTH (data_iscrizione) LIKE '$meseiscrizione'

    come fa un NUMERO a essere SIMILE a un altro? i numeri sono uguali, maggiori o minori (e loro negazioni), ma non SIMILI (like)....


  5. #5
    Hai ragione tu. Mi credi che ci sto dietro da settimane? Avevo preso la select da un altro file e con la data intera (yyyy-mm-dd) funzionava il LIKE. Inoltre avevo fatto la prova con =, ma probabilmente avevo sbagliato altrove perché non andava.

    Mi ero perso in un bicchiere d'acqua.

    GRAZIE!

    Ora c'è un modo per sostituire i mesi in lettere al posto dei numeri sui pulsanti, e far funzionare la richiesta? Oppure il value non si può cambiare? Ho letto che in casi simili si usano gli array, ma devo informarmi perché non li ho mai usati.

  6. #6
    Originariamente inviato da michaeljordan80
    Ora c'è un modo per sostituire i mesi in lettere al posto dei numeri sui pulsanti, e far funzionare la richiesta? Oppure il value non si può cambiare? Ho letto che in casi simili si usano gli array, ma devo informarmi perché non li ho mai usati.
    questo è affare di linguaggio, non di database. posta nel forum giusto

  7. #7
    Non ci avevo pensato, trattandosi (per me) dello stesso problema. Grazie.

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.