Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Query, su MySQL query browser funziona, su pagina php non funziona...

    Ciao a tutti,
    come da oggetto, sto impazzendo con una query che deve trovare i record compresi tra due date. La query lanciata da php non mi tira fuori nessun record, mentre la stessa, mandata a video con un echo e lanciata sul mysql query browser, funziona correttamente.

    la tabella è abbastanza nutrita, ma c'è un record in particolare con campo DataProtocollo = '2010-01-20' e UfficioMitt = 'Pittau ...'

    La query è la seguente:
    Codice PHP:
    select from PROTOUNION where (DataProtocollo BETWEEN '2010-01-01' AND '2010-02-02') and UfficioMitt like '%pittau%' order by DATE_FORMAT(DataProtocollo,'%Y%m%d'descNProto desc 
    Avendo brutte esperienze coi campi data, ho provato anche a fare così:
    Codice PHP:
    select from PROTOUNION where (TO_DAYS(DataProtocolloBETWEEN TO_DAYS('2010-01-01') AND TO_DAYS('2010-02-02')) and UfficioMitt like '%pittau%' order by DATE_FORMAT(DataProtocollo,'%Y%m%d'descNProto desc 
    Ma il risultato è lo stesso... su query browser funziona, mentre da pagina php non mi restituisce niente!

    Ho fatto anche altre prove senza il between, e la cosa diventa ancora più strana, se lancio la query:
    Codice PHP:
    select from PROTOUNION where DataProtocollo <= '2010-02-02' and UfficioMitt like '%pittau%' order by DATE_FORMAT(DataProtocollo,'%Y%m%d'descNProto desc 
    Funziona correttamente,
    mentre con la query:
    Codice PHP:
    select from PROTOUNION where DataProtocollo >= '2010-01-01' and UfficioMitt like '%pittau%' order by DATE_FORMAT(DataProtocollo,'%Y%m%d'descNProto desc 
    Stesso problema, non mi tira fuori niente

    Il mio dubbio è che la cosa possa dipendere dalla versione di php o di mysql installate sulla macchina, ma vorrei cercare di toccare il meno possibile, trattandosi di un server linux e non essendo molto pratico con le attività sistemistiche su questo sistema operativo.

    Se qualcuno ha qualche idea in merito o ha avuto esperienze simili, lo ringrazio anticipatamente per l'attenzione.

    Saluti

    W.

  2. #2
    c'e del fumo in query street ....

    Se la tua data nella tabella corrisponde a:

    DataProtocollo = '2010-01-20'

    Allora la query corrispondera' a:

    codice:
    select * 
    from PROTOUNION 
    where DataProtocollo BETWEEN '2010-01-01' AND '2010-02-02' 
          and UfficioMitt like '%pittau%' 
    order by DataProtocollo desc, NProto desc
    Se non va togli UfficioMitt e vedi se la sola data lavora propriamente.

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

  3. #3
    altro che fumo... mi sa che è proprio una nube tossica!

    ho fatto un altro pò di prove:
    solo le date funziona:
    codice:
    select * from PROTOUNION 
    where (DataProtocollo BETWEEN '2010-01-01' AND '2010-01-20') 
    order by DataProtocollo desc, NProto desc
    like + data_finale funziona:
    codice:
    select * from PROTOUNION 
    where DataProtocollo <= '2010-01-20' 
    and UfficioMitt like '%pittau%' 
    order by DataProtocollo desc, NProto desc
    like + data_iniziale NON funziona:
    codice:
    select * from PROTOUNION 
    where DataProtocollo > '2010-01-01' 
    and UfficioMitt like '%pittau%' 
    order by DataProtocollo desc, NProto desc
    sto impazzendo!

  4. #4
    Non impazzire.

    Dividi la query, cioe' fanne 2 una con la data e l'altra con il pittau.

    codice:
    select * from PROTOUNION 
    where DataProtocollo > '2010-01-01' 
    order by DataProtocollo desc, NProto desc
    
    select * from PROTOUNION 
    where UfficioMitt like '%pittau%' 
    order by DataProtocollo desc, NProto desc
    una delle due ti dira' che non c'e' trippa per i gatti

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

  5. #5
    Troppo facile... funzionano entrambe!!
    Solo se metto l'intervallo e il like o la data iniziale e il like non funziona!

    Houston... ormai siamo alla deriva!

  6. #6
    Originariamente inviato da Wlahood
    Troppo facile... funzionano entrambe!!
    Solo se metto l'intervallo e il like o la data iniziale e il like non funziona!

    Houston... ormai siamo alla deriva!
    sicuro sicuro???

    evidentemente non hai la corrispondeza di alcun record dove

    la data = DataProtocollo > '2010-01-01' esiste con UfficioMitt like '%pittau%'

    ripeti con me.... io credo al software... io credo al software (many more time.... )

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

  7. #7
    Sono un credente convinto!

    Ti ho mandato un messaggio privato

  8. #8
    Originariamente inviato da Wlahood
    Sono un credente convinto!

    Ti ho mandato un messaggio privato
    usa la logica.

    where (DataProtocollo BETWEEN '2010-01-01' AND '2010-01-20')
    funziona e quindii esiste la DataProtocollo tra le due date indicate

    where DataProtocollo <= '2010-01-20'
    and UfficioMitt like '%pittau%'
    funziona e quindi la DataProtocollo e' minore o uguale alla data indicata con il "pittau"

    where DataProtocollo > '2010-01-01'
    and UfficioMitt like '%pittau%'
    NON funziona e quindi NON hai una data SUPERIORE a quella indicata che abbia ANCHE il "pittau"

    Attenzione che la data <= '2010-01-20' potrebbe essere qualsiasi data precedente al 2010.
    Prova ad aggiungere un uguale all'ultima query perche' cosi' come fai ti viene esclusa la data uguale.

    where DataProtocollo >= '2010-01-01'

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

  9. #9
    La mia logica comincia a vacillare nel momento in cui funziona anche questa:
    codice:
    select * from PROTOUNION 
    where (DataProtocollo BETWEEN '2010-01-20' AND '2010-01-20') 
    order by DataProtocollo desc, NProto desc
    Ma non questa:
    codice:
    select * from PROTOUNION 
    where (DataProtocollo BETWEEN '2010-01-20' AND '2010-01-20') and UfficioMitt like '%pittau%' 
    order by DataProtocollo desc, NProto desc
    E sopratutto, se vado fisicamente sul server, apro il mysql query browser e lancio le stesse identiche query (copiate e incollate dell'echo a video), funzionano!!!!!!

    Senti, lascia perdere, scusa se ti ho fatto perdere tempo, ho il cervello in pappa... oggi probabilmente non è giornata... ora mollo tutto, stanotte resetto il cervello e domani mattina ci riprovo a mente lucida...

    Secondo me è un problema di php che per qualche arcano motivo non gli passa bene la query... e non so come risolverlo!

  10. #10
    fai una select dal query browser ordinata per data e controlla se in corrispondeza delle date hai presente %pittau%

    select DataProtocollo, UfficioMitt
    from etc
    senza where
    order by DataProtocollo

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