dunque ho una query piuttosto complessa che funziona molto bene se la testo direttamente in mySql, vado subito al problema, la clausola WHERE:
la stringa nella query è
WHERE ristoranti_ris.idzon_ris LIKE '$var1'
AND ristoranti_ris.idamb_ris LIKE '$var2'
AND ristoranti_ris.idtip_ris LIKE '$var3'
in pratica nella pagina web ho un form che invia i parametri di ricerca (metodo GET, nome variabili: zon, amb, tip) con questa stringa url
www.dominio.it/result_all.php?zon=1&amb=4&tip=2
Cosi compilata (con tutte le variabili) la pagina da il risultato voluto.
Il problema è quando NON si seleziona uno o più parametri, diciamo che non viene fatta la scelta della variabile "amb", la stringa risulta
www.dominio.it/result_all.php?zon=1&amb=&tip=2
Se compilo la query manualmente in mySql inserendo le variabili lasciandone vuota una (o anche tutte) ho il risultato voluto, quindi ho visto che il valore 'nomevariabile=' è accettato da mySql(in pratica non considera la variabile vuota, ed è esattamente quello che cerco), testando via web però non riesco ad avere risultati, ho quindi fatto un echo della query ed ho visto che la stringa 'nomevariabile=' viene trasformata in 'nomevariabile=null',
avendo nella query un'istruzione WERE .... LIKE mi semra che vada a cercare il termine 'null' piuttosto che ignorare quella variabile.
In pratica non so se ho scelto la strada corretta per avere delle variabili da considerare solo se compilate, (e questo è il primo problema) ma qualora sia la strada giusta, come posso non far cercare 'null' come se fosse un valore?
Probabilmente ho fatto un po' di confusione, semmai infamatemi e ci riprovo...
![]()