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

    query select from where and

    Salve,
    la faccio breve. Sto creando un'applicazione web di messaggistica in cui è possibile visualizzare tutti i messaggi, quelli non letti, già letti e cestinati attraverso dei button. I messaggi vengono memorizzati in un database Mysql. Incontro problemi nella query di visualizzazione di tutti i messaggi, dove dovrebbero essere prelevati tutti i messaggi tranne quelli cestinati.
    Questa è la query che provo a usare:

    codice:
     
    $query = "SELECT * FROM messaggi WHERE nome_utente_destinatario = '$utente' AND stato != 2";
    // dove nome_utente_destinatario è un parametro di sessione dell'utente che ha effettuato il login mentre stato puo essere: 0 non letto, 1 letto, 2 cestinato
    la query funziona quando prelevo tutti i messaggi (anche quelli cestinati), ma non funziona quando inserisco la condizione AND stato != 2 o stato != '2' o stato <> 2 ecc... (le ho provate tutte).
    Dove può essere il problema?
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Domanda da database, non hai problemi con PHP, ma con MySQL.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Domanda da database, non hai problemi con PHP, ma con MySQL.
    Ok... il codice è php e MySQL funziona perfettamente, pensavo fosse domanda da php...

  4. #4
    *se* stato è un numero, prova con

    $query ="SELECT * FROM messaggi WHERE nome_utente_destinatario = '$utente' AND not (stato = 2)";

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    *se* stato è un numero, prova con

    $query ="SELECT * FROM messaggi WHERE nome_utente_destinatario = '$utente' AND not (stato = 2)";
    No, non và.. In pratica ho dei button che premendoli spostano i messaggi nelle aree 'letti,non letti,cestinati'
    Se sposto un messaggio da 'letti' a 'non letti' o viceversa dopo lo posso ripristinare, se invece lo sposto nei cestinati l'operazione di ripristino non ha più effetto, rimane nei cestinati qualsiasi button io prema. Se lascio la query senza AND NOT ecc... il meccanismo funziona però nell'area 'Tutti i messaggi' compaiono anche i cestinati...

  6. #6
    stato e' un numero o un char?
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  7. #7
    Quote Originariamente inviata da bomberdini Visualizza il messaggio
    stato e' un numero o un char?
    è un numero di tipo TYNINT... ho provato a cambiarlo in INT ma non và lo stesso...
    La funzione è questa:
    codice:
    static public function 
    getMessaggi ($stato) {
    
    // connette al db
    				$connessione = Connessione::getConnessione();
    // prende il nome utente dalla sessione
    				$utente = $_SESSION['Nome_utente'];
     
    if ($stato == 3) { // $stato == 3 è inizializzato per default e visualizza tutti i messaggi
     
    // prepara la query per prelevare tutti i messaggi
    					$query = 
    "SELECT * FROM messaggi WHERE nome_utente_destinatario = '$utente' AND stato != 2";
    
    				} 
    else { // se viene premuto il button 'letti' o 'non letti' o 'cestinati' viene passato come parametro $stato = 0 o $stato = 1 o $stato = 2 rispettivamente
    					$query = 
    "SELECT * FROM messaggi WHERE nome_utente_destinatario = '$utente' AND stato ='$stato'";
    				}
     
    // esegue la query
    				$risultato_query = $connessione->query($query);
    
    // ecc....
    Sono arrivato al punto che il problema è nella query di selezione di tutti i messaggi perché se ometto 'stato != 2' la query funziona... Funziona anche la query di selezione dei messaggi 'letti' e 'non letti'...

  8. #8
    se provi a scrivere :
    SELECT * FROM messaggi WHERE nome_utente_destinatario = '$utente' AND stato <> 2

    che succede?
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  9. #9
    Quote Originariamente inviata da bomberdini Visualizza il messaggio
    se provi a scrivere :
    SELECT * FROM messaggi WHERE nome_utente_destinatario = '$utente' AND stato <> 2

    che succede?
    Ho provato... i messaggi non vengono ripristinati... rimangono nel cestino e la query non viene eseguita...

  10. #10
    Quote Originariamente inviata da Marco.Maffei-12 Visualizza il messaggio
    la query non viene eseguita...
    non viene eseguita?

    quindi non ti restituisce dati perche non viene eseguita... ??

    ci sono dati nella tabella messaggi che soddisfano la condizione nome_utente_destinatario = '$utente' AND stato <> 2???
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

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.