• User Attivo

    query sbagliata

    Salve, spero tanto che qualcuno riesca a darmi una mano 😞
    Allora, ho un calendario dinamico in php e in una pagina dovrei recuperare i dati relativi ad un certo giorno.
    Fin qui tutto ok.
    Supponendo che possano essercene molti, ho inserito un box di ricerca.. e qui nascono i problemi.
    Anche se alla query passo la variabile del giorno selezionato, il risultato è sempre e solo giovedì 01 gennaio 1970 !
    Posto il codice della pagina in cui vedo regolarmente i risultati del giorno ma in cui non funziona la ricerca..

    [php]
    <?
    setlocale(LC_TIME, 'it_IT');
    $oggi=strftime('%A %d %B %Y', $ts);?>
    <b> <? echo $oggi?></b><BR />
    <?
    mysql_connect("localhost","user","pass")
    or die("Unable to connect to SQL server");
    mysql_select_db("db") or die("Unable to select database");
    $word="";
    if($_POST['word']) {
    $word=$_POST[ 'word'];
    $queryc="SELECT * FROM reperibilita WHERE (cognome like '$word%' OR nome like '$word%' OR luogo like '$word%' OR CONCAT(nome,' ', cognome) like '$word%') AND giorno='$oggi' ORDER BY ora_inizio ASC " ;} else{$queryc="SELECT * FROM reperibilita WHERE giorno='$oggi' ORDER BY ora_inizio ASC " ;
    }

    $userlist=mysql_query($queryc ) or die("Select Failed - reperibilita");

    ?>
    [/php]La seconda parte della query ( l'else) funziona per cui non riesco a capire quell'errore sulla data 😞
    Spero che ci capiate qualcosa 🙂
    Grazie in anticipo


  • Super User

    Ci darò un'occhiata dopo cena 🙂 Intanto però perchè hai messo

    [php]
    $word="";
    [/php]

    visto che subito dopo la sovrascrivi con

    [php]
    if($_POST['word']) {
    $word=$_POST[ 'word'];
    [/php]

    ti consiglierei qualcosa tipo

    [php]
    if($_POST['word']) {
    $word=$_POST[ 'word'];
    }
    //altro codice
    else
    {
    die("Dato mancante!");
    }
    [/php]


  • User Attivo

    Avevo settato word= "" perchè il value del campo input di ricerca all'inizio deve essere vuoto, e non "cerca" che è quello che appare all'utente..
    Posso fare come consigli tu comunque..
    Spero che la tua cena ti abbia ispirato la soluzione 🙂
    Intanto grazie per la risposta.. attendo fiduciosa 🙂


  • User Attivo

    Per quanto riguarda la data ti consiglierei di usare una stringa numerica dando il timestamp della data attuale in modo che il confronto tra i campi sia nettamente diverso da come c'è l'hai adesso.
    Prova e fammi sapere
    CIAO


  • User Attivo

    @mikslap said:

    Per quanto riguarda la data ti consiglierei di usare una stringa numerica dando il timestamp della data attuale in modo che il confronto tra i campi sia nettamente diverso da come c'è l'hai adesso.
    Prova e fammi sapere
    CIAO

    un esempio? non è che me la cavi tanto bene ( si sarà notato..)


  • User Attivo

    Ciao,
    il campo 'giorno' nel database è di tipo DATE o DATETIME?

    In tal caso la formattazione della data che inserisci nella query con la variabile "oggi" ( %A %d %B %Y ) non è conforme alla formattazione che ha sul database che è:
    %Y-%m-%d (per il dato di tipo DATE)
    %Y-%m-%d %H:%M:%S (per il dato di tipo DATETIME)


  • User Attivo

    @Magicale said:

    Ciao,
    il campo 'giorno' nel database è di tipo DATE o DATETIME?

    In tal caso la formattazione della data che inserisci nella query con la variabile "oggi" ( %A %d %B %Y ) non è conforme alla formattazione che ha sul database che è:
    %Y-%m-%d (per il dato di tipo DATE)
    %Y-%m-%d %H:%M:%S (per il dato di tipo DATETIME)

    Avevo provato datetime ma non so come formattare la data in 'stile' italiano 😞

    PD ( anche cambiando la formattazione della data continua comunque a trovare solo il 1 gennaio 1970 😞 )

    Adesso ho messo varchar(255) e funziona tranne che nel maledetto modulo di ricerca