Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    4

    Filtrare risultati mysql

    Ciao a tutti dico subito che non sono molto esperto di php, ecco il mio problema:
    Ho creato un form dove vengono selezionate alcune voci che saranno poi usate nelle query mysql per filtrare i risultati dal db, però io vorrei che venissero estratte dal db solo i risultati che comprendono tutti i campi selezionati nel form, ad esempio se seleziono campo_uno=SI, campo_due=SI voglio che mi vengano estratti solo i campi che contengono tutte queste condizioni e non solo una di queste, la mia query e:
    Codice PHP:
    @mysql_query("SELECT * FROM garanzia WHERE ($a_nomeaccount) OR ($a_email) OR ($a_ritirato) OR ($a_rimborsato) OR ($a_sostituito) OR ($a_arrivato) OR ($a_nome) OR ($a_cognome)"); 
    così com'è restituisce anche i campi che contengono una di queste condizioni, ogni variabile restituisce valori così "colonna = '$valore_colonna' oppure null se l'utente non ha selezionato il campo form", ho provato con AND ma non funziona perché se l'utente seleziona solo alcuni campi e non tutti la query non funge, quindi mi servirebbe un codice che mi permetta di restituire risultati dal db solo se rispetta tutte le condizioni e non solo alcune, ricordo che le variabili tra () rispecchiano i campi form quindi se non vengono immessi o selezionati c'è una funzione (if) che li rende nulli come questa:
    Codice PHP:
    if ($i_sostituito === null) {$a_sostituito null;}else{$a_sostituito "sostituito = '$i_sostituito'";} 
    vi ringrazio anticipatamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2012
    residenza
    Dese (Venezia)
    Messaggi
    41
    Ciao,
    secondo me dovresti crearti la stringa della query dinamicamente, concatenando le parti che ti servono.
    Ovviamente le parti che andrai a concatenare saranno i campi che ti hanno confermato nel form:

    es. if($campo1==true)
    $query.="pezzo di query da concatenare";

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    4
    grazie per la concatenazione funziona ma adesso non mi stampa i risultati, ho provato a far stampare a video la query ed e valida ma i risultati non si mostrano, la query diventa così:
    Codice PHP:
    SELECT FROM garanzia WHERE id AND nome_account 'prova' 
    e corrisponde esattamente alla riga che vorrei stampare ma non mi da nessun risultato.
    Per stampare a video io uso un ciclo while così:
    Codice PHP:
    while ($row mysql_fetch_object($query)) {$nome_account $row->nome_account;$email $row->email;$nome $row->nome;$cognome $row->cognome;$note $row->note;$id $row->id;
    ...... 
    cosa sbaglio?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    4
    risolto nel ciclo while indicavo il testo della query ma non la query stessa cioè quella eseguita dal comando (mysql_query)

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2012
    residenza
    Dese (Venezia)
    Messaggi
    41
    ... dipende cosa contiene $query.
    Dai un occhio qui http://www.php.net/manual/en/functio...tch-object.php

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    4
    risolto grazie $query = "SELECT * ----", invece dovevo inserire $risultato = mysql_query();

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2012
    residenza
    Dese (Venezia)
    Messaggi
    41
    Esatto!

Tag per questa discussione

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.