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

    Pagina di ricerca e risultati

    Ciao ragazzi,
    è da 10gg che stò diventando pazzo con la pagina di ricerca e risultati.
    Mi spiego: ho una pagina di ricerca con i seguenti campi:
    Da data:
    A data:

    il metodo di invio è GET e punta alla pagina risultati.php
    Ora il problema viene qui: se inserisco la data in formato dd-mm-aaaa il tutto va a farsi benedire mentre se la inserisco in formato americano tutto funziona.
    Avrò letto migliaia di post in merito alla gestione delle date ma non ho capito nulla.
    Non sono una cima in php quindi chiedo, per pietà e non per piacere a questo punto, se qualcuno mi scrive un breve codice per la realizzazione di una pagina di ricerca che abbia i campi 'Da data' e 'A data' perchè quello che non capisco è come fare a inserire il codice nella pagina che mi converte la data da italiano a americano per far funzionare il tutto.

    Forse sono stato un po' contorto ma credo che qui possiate aiutarmi.

    Grazie infinite.

  2. #2
    io di solito, per evitare di dover fare controlli sulle date, metto tre tendine da selezionare giorno-mese-anno così poi mi compongo la data come fa più comodo a me per la ricerca.

    Quindi ho in totale sei tendine, che poi recupero nella pagina dei risultati:

    codice:
    // con questo ciclo recuperi tutte le variabili del form
    
    if($_GET){
      foreach($_GET as $key=>$value){
        $$key=$_GET[$key];
      }
    }
    
    /*
     * compongo le due date:
     * - da che di default avrà il carattere jolly per mySQL => %
     * - a che di default avrà la data odierna
     * in entrambi i casi costruisco la data SE e SOLO SE 
     * sono compilati TUTTI i campi che riguardano la data stessa
    */
    
    $da=($giorno && $mese && $anno)?"{$anno}-{$mese}-{$giorno}":"%";
    $a=($giorno2 && $mese2 && $anno2)?"{$anno2}-{$mese2}-{$giorno2}":date("Y-m-d");
    
    // poi faccio la query per recuperarli semplicemente così
    $sql="SELECT * FROM tabella WHERE data>='{$da}' AND data<='{$a}'";

    poi naturalmente ci sono tantissimi altri metodi, puoi dire all'utente di inserire la data solo nel formato gg/mm/aaaa e andare a controllare con le preg che sia corretto, poi ti splitti il valore e ricostruisci la data nel formato che ti accetta l'SQL. Ma visto che hai detto di essere agli inizi ho preferito tralasciare le espresisoni regolari






    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    $anno, $mese, $giorno e $anno2, $mese2, $giorno2 sono ovviamente i nomi delle tendine, cambiali a seconda delle tue esigenze
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    Ok ti ringrazio molto.
    Ci provo.

  5. #5
    Finalmente, non ci speravo +.
    Non sai quanto ti sono grato.

    Salutissimi.

  6. #6
    figurati!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.