Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: domanda sulle date

  1. #1

    domanda sulle date

    ciao a tutti
    Dovrei fare per un mio progettino una ricerca nel database per range di data.
    il campo data nel db è di tipo date.

    la query a cui avevo pensato più o meno è questa

    codice:
    $query = "SELECT date_format(data,'%d/%m/%Y') data FROM folders WHERE data BETWEEN $data1 AND $data2
    Le variabili data1 e data2 dovrebbero essere quelle passate da un nomalissimo form con menu a tendina.

    solo che qui ho dei problemi di formato, per leggere le date scelte dal form ho usato questo codice

    codice:
    $giorno=$_REQUEST['giorno1'];
    $mese=$_REQUEST['mese1'];
    $anno=$_REQUEST['anno1'];
    $giorno=$_REQUEST['giorno2'];
    $mese=$_REQUEST['mese2'];
    $anno=$_REQUEST['anno2'];
    
    $data1 = mktime("0", "0", "0", $mese1, $giorno1, $anno1);
    $data2 = mktime("0", "0", "0", $mese2, $giorno2, $anno2);
    il formato che esce fuori non è combatile con quello del mio campo date e quindi la richiesta non da alcun risultato...

    come posso risolvere?

  2. #2
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/date

    In ogni caso, il codice che hai postato dovrebbe sollevare vari notice perchè non valorizzi correttamente $giorno1, $mese1, etc.

  3. #3
    eh invece purtroppo non mi da nessun errore da controllare e su php.ini è tutto attivo per la visualizzazione degli errori
    vado cmq a dare un'occhiata al tuo link

  4. #4
    Originariamente inviato da Kassandraxxx
    eh invece purtroppo non mi da nessun errore da controllare e su php.ini è tutto attivo per la visualizzazione degli errori
    vado cmq a dare un'occhiata al tuo link
    dalla tua query si presume che il campo data sia in formato ansi, mentre mktime rende un unix timestamp.... traducendo in prodotti dell'orto ...

    where carota between patata1 e patata2

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

  5. #5
    ahahah :P (scusate la mia niubbaggine)

    cm il paragone culinario è stato chiarificatore..

    adesso ho provato a fare cosi..

    codice:
    <?php
    include("config.inc.php");
    
    // connessione db
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    
    $giorno=$_REQUEST['giorno1'];
    $mese=$_REQUEST['mese1'];
    $anno=$_REQUEST['anno1'];
    $giorno=$_REQUEST['giorno2'];
    $mese=$_REQUEST['mese2'];
    $anno=$_REQUEST['anno2'];
    
    $r="$anno1"."-"."$mese1"."-"."$giorno1";
    
    $r2="$anno2"."-"."$mese2"."-"."$giorno2";
    
    
    $query = "SELECT  data FROM folders WHERE data BETWEEN $r AND $r2";
    
    $result = mysql_query($query, $db);
    while($row = mysql_fetch_array($result))
    
    {
        echo ("<table width=\800\ border=\1\ cellpadding=\2\ align=center bgcolor=#F4FFFF>
    		  <td width=80>$row[data]</td>
    
           </tr> "); 
      }
      
      ?>
    adesso se stampo a video r visualizzo la data 1995-8-16 cosi come la vedo nel campo del db

    quindi nella query seleziono la data dal campo data dove la data deve essere compresa tra le due variabili che passo dal form..

    risultato non vedo nulla e nessuna notice..

  6. #6
    buontempone.... confessa che ci stai pigliando per i fondelli...

    Codice PHP:
    $giorno=$_REQUEST['giorno1'];
    $mese=$_REQUEST['mese1'];
    $anno=$_REQUEST['anno1'];
    $giorno=$_REQUEST['giorno2'];
    $mese=$_REQUEST['mese2'];
    $anno=$_REQUEST['anno2'];

    $r="$anno1"."-"."$mese1"."-"."$giorno1";

    $r2="$anno2"."-"."$mese2"."-"."$giorno2"

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

  7. #7
    sapessi come fare non postavo qua...
    comunque come ho detto non sono esperta e sto imparando, e quindi ovvio che a te sembrarà facile e cristallino a me no...
    e guarda più che il codice già bello e fatto a me interessa capire come funziona e in cosa sbaglio, il copia e incolla serve poco ad imparare.

  8. #8
    Originariamente inviato da Kassandraxxx
    sapessi come fare non postavo qua...
    comunque come ho detto non sono esperta e sto imparando, e quindi ovvio che a te sembrarà facile e cristallino a me no...
    e guarda più che il codice già bello e fatto a me interessa capire come funziona e in cosa sbaglio, il copia e incolla serve poco ad imparare.
    $giorno lo ripeti sia per data1 che per data2 e quindi lo sovrascrivi. Lo stesso per mese ed anno... ma fin qui il danno e' nullo perche' poi chiami:

    $r="$anno1"."-"."$mese1"."-"."$giorno1";

    $r2="$anno2"."-"."$mese2"."-"."$giorno2";

    domanda .... da quale pentola saltano fuori queste variabili?

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

  9. #9
    da un form, come dicevo nel primo post, vero mi sono scordata di nominarle in modo diverso

    cmq anche cosi

    $giorno1=$_REQUEST['giorno1'];
    $mese1=$_REQUEST['mese1'];
    $anno1=$_REQUEST['anno1'];
    $giorno2=$_REQUEST['giorno2'];
    $mese2=$_REQUEST['mese2'];
    $anno2=$_REQUEST['anno2'];

    $r="$anno1"."-"."$mese1"."-"."$giorno1";

    $r2="$anno2"."-"."$mese2"."-"."$giorno2";

    non funge

  10. #10
    Originariamente inviato da Kassandraxxx

    non funge
    lapidaria e lapidabile...

    stampa la query e metti la segnalazione di errore. Per tua comodita':

    Codice PHP:
    $query "SELECT  data FROM folders 
                 WHERE data BETWEEN '
    $r' AND '$r2' ";

    echo 
    $query;

    $result mysql_query($query$db) or die (mysql_error()) ; 

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

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.