Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 34
  1. #11
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ci sono quasi, sto riuscendo a fare quello che voglio, non ho usato il tuo codice nella query
    Codice PHP:
    if(isset($_POST['filtro1'] && $_POST['filtro1']){ 
    perchè forse manca una parentesi che non trovo e mi da errore.

    Sto pero' usando questo codice:
    Codice PHP:
    if (isset($_POST['soft'])) {$query_offerte .= " and trattamento=\"1\"";}if (isset($_POST['hard'])) {$query_offerte .= " and trattamento=\"2\"";} 
    in pratica ho rinominato il checkbox del trattamento in "soft" per quello del soft all inclusive ed in "hard" per quello dell'hard all inclusive

    Funziona bene se ne scelgo uno solo, ma se li seleziono entrambi non mi esce niente perche' alla query viene aggiunto
    codice:
    and trattamento="1" and trattamento="2" ORDER BY prezzo asc
    forse con il tuo metodo potevo chiamare il checkbox "trattamento" e dare 2 valori diversi, ma mi dava qualche errore che non sono riuscito ad individurare

  2. #12
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Si...mi son perso una parentesi :
    if(isset($_POST['filtro1']) && $_POST['filtro1']){

    Cmq, mi par di capire che il tuo problema è che su trattamento hai bisogno di un OR non di un AND.
    Se hai più campi su cui fare la ricerca potresti pensare di "raggrupparli" lato form in un array:
    Codice PHP:
    <form>
       <
    input name="trattamento[]" value="1" type="checkbox">
       <
    input name="trattamento[]" value="2" type="checkbox">
       <
    input name="altocampo[]" value="6" type="checkbox">
       <
    input name="altocampo[]" value="7" type="checkbox">
    </
    form
    Lato php
    Codice PHP:
    if(!empty($_POST['trattamento'])){
       
    $query .= " AND trattamento IN ("implode(',',$_POST['trattamento']).')'// se i valori sono interi
       
    $query .= " AND trattamento IN ('"implode("','",$_POST['trattamento'])."')"// se i valori non sono interi


    Ovviamente se il filtro è solo sul campo trattamento allora ti basta cambiare AND con OR
    Ultima modifica di boots; 16-03-2018 a 20:30

  3. #13
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si il problema attualmente è sui trattamenti che per il momento ne ho 2, ma potrebbe uscire un'offerta con un trattamento diverso (esempio "mezza pensione") e non posso fare 10 mila controlli, cercavo qualcosa di automatico.
    Ora provo con l'ultimo consiglio che hai dato

    che intendi per valori interi e non interi? (i valori che metto sono numeri), esempio
    soft all inclusive=1
    hard all inclusive=2
    mezza pensione=3
    ecc

  4. #14
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    cmq nell'ultima query c'e' qualche errore, non mostra nulla e mi da errore

  5. #15
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    E non ti conviene invece creare i checkbox dinamicamente in base ai trattamenti che hai?

    Se hai i value dei checkbox come numeri interi vale il primo codice (non mette gli apici ai valori),se invece son stringhe ci vogliono gli apici per i valori (secondo caso)

    PS: ovviamente manca la parte di controllo...dovresti passare i valori come minimo ad una funzione di escape

  6. #16
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Codice PHP:
    $query_offerte .= " ("implode(',',$_POST['trattamento']).')'"; 
    qui mi da qualche errore e non mi fa andare avanti

    si mi conviene farlo dinamicamente e credo che con l'array dovrei riuscirci usando trattamento[]

  7. #17
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    errore di php o mysql ? nel secondo stampati la query e vedi se è corretta

  8. #18
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    errore di php, l'editor mi colora il codice diversamente.
    Sarà qualche apice o doppio apice

  9. #19
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    l'ultimo " non ci va
    Codice PHP:
    $query_offerte .= " ("implode(',',$_POST['trattamento']).')'

  10. #20
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ok adesso non ho errore php ma errore mysql...


    AND trattamento IN = (1) ORDER BY prezzo ascYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= (1) ORDER BY prezzo asc' at line 1

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.