Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662

    calcolare intervallo età

    Buongiorno a tutti.
    Stamattina ho un problema dal quale non riesco ad uscire.

    In un form di ricerca, tra gli altri filtri, ho una select con gli intervalli di età.

    tra 18 e 24 anni
    tra 25 e 30 anni
    tra 31 e 36 anni
    tra 37 e 42 anni
    tra 43 e 50 anni
    tra 51 e 60 anni
    tra 61 e 70 anni
    oltre 70 anni

    Attualmente ho una select che utilizza Join in questa maniera:

    Codice PHP:
    $sql "SELECT * FROM
                categories
                INNER JOIN
                a_data ON categories.id_user=a_data.id_user
                INNER JOIN
                users ON categories.id_user=users.id
                INNER JOIN
                gallery ON categories.id_user=gallery.id_user
                AND categories.mod='1'"
    .$sex.$p."
                LIMIT 
    $prima_riga$righe_per_pagina
                "

    Ma come faccio a trovare i dati per creare un filtro per una select se i dati che mi servono li reperisco dalla stessa select?

    Come posso fare?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520

    Re: calcolare intervallo età

    Originariamente inviato da bANART
    Ma come faccio a trovare i dati per creare un filtro per una select se i dati che mi servono li reperisco dalla stessa select?

    Come posso fare?
    non ho capito cosa intendi e quale problema hai. Fai confuzione fra il componente select html e la select sql

  3. #3
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    AH AH!!!
    Ciao BStefano!

    Dunque... sto procedendo in questa maniera.
    Nella select aggiungo quanto segue (prendila con le pinze poichè sono solo appunti da sistemare)

    $date = date(Y,n,j);

    AND (($date-$users.data_nascita) BETWEEN 18 AND 24)

    Ora però $date mi stampa:
    2011/01/20

    mentre la data in database ha il formato:
    1982-05-31

    quindi dovrei elinimare i divisori giusto?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non so niente o quasi su come gestire date in sql, la mia soluzione sarebbe sicuramente obsoleta, ma chi ti volesse aiutare credo che vorrebbe sapere il tipo del campo data in mysql (cioè è un varchar o un date o cos'altro?)

  5. #5
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ok,
    il campo è "date".
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  6. #6
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ho provato in questo modo:

    $dt = explode("/",date("Y/m/j"));
    $date = $dt[0]."-".$dt[1]."-".$dt[2];

    e nella SELECT:
    AND ((strtotime($date)-strtotime(users.data_nascita)/(86400)) BETWEEN 6570 and 8760)

    dovrebbe andare... ora provo.
    Intanto qualcuno può darmi un feedback? Ho scritto una fesseria?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  7. #7
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Bene (male), non va... mi da questo errore:

    Warning: mysql_result() expects parameter 1 to be resource, boolean given in /web/htdocs/www.sito.it/home/search/sincludes/s_mod.php on line 44 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /web/htdocs/www.sito.it/home/search/sincludes/s_mod.php on line 82 nessun risultato trovato

    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    scusa, ma non puoi fare direttamente date("Y-m-j"); ???

  9. #9
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    O_o

    E' vero....

    Comunque niente... il problema sussiste...
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  10. #10
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ora ho provato in questo modo:

    AND DATEDIFF(users.data_nascita,date(Y-m-d)) AS >6569 and <8760)

    Ma il risultato è sempre un errore...

    Ho trovato il metodo quà .
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

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 © 2024 vBulletin Solutions, Inc. All rights reserved.