Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034

    Selezionare record inferiori a un giorno, a una settimana ecc.


    Vi spiego, devo estrarre i record che sono non più vecchi di una settimana (o di un mese, o due mesi e così via... questo lo sceglie l'utente).

    Ora faccio:
    Codice PHP:
    $unasettimana time()-60*60*24*7;
    $unmese time()-60*60*24*31;
    $unanno time()-60*60*24*365;
    //....
    SELECT campi FROM tabella WHERE campo1 ="chiave" OR campo2="chiave" AND data >= $unasettimana ORDER BY data DESC 
    Se la parola cercata ("chiave") è presente anche nel campo2 allora tira fuori anche i record che sono vecchi di un'anno, invece di prendere solo quelli non più vecchi di una settimana

  2. #2
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Prova mettendo delle parentesi, non ricordo la priorità degli operatori, ma potrebbe essere questo il problema
    Codice PHP:
    SELECT campi FROM tabella WHERE (campo1 ="chiave" OR campo2="chiave") AND data >= $unasettimana ORDER BY data DESC 

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    mi sa che era quello: infatti come descritto qui le parentesi tonde obbligano a considerare prima l'operatore in esse

  4. #4
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Devi guardare la priorità in MySQL, non in php, comunque sul fatto che la parentesi forzano la valutazione rispetto agli operatori AND OR sono sicuro, quello che non ricordo è la priorità dell'AND rispetto all'OR, che è quello che credo faccia sbagliare la tua query, cmq io le parentesi le metto sempre quando uso and e or insieme, nel dubbio non guastano mai.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    si, ora leggo che in sql and ha la priorità su or: http://freephp.html.it/articoli/view...p?id=124&pag=2

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.