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

    Query e campi obbligatori

    Scusate, magari è già stato trattato ma.... la funzione "ricerca" non va
    Allora in parole brevi....
    Ho uno script dove inserisco diversi campi in una tabella.
    Ho un problema con la funzione di ricerca...
    Il form è composto da 4 campi (prezzo minimo, prezzo massimo, campo1 e campo2); fornisce dei risultati solo se compilo prezzo min e prezzo max. Se per esempio metto campo1 senza gli altri non dà alcun risultato (anche se presente), idem se metto solo il campo2, oppure se metto campo1 + prezzo o campo2 + prezzo.
    Quindi devo dedurre che campo1 e campo2 da qualche parte sono settati oblligatori.
    Dove???
    Nella pagina con il fomr di sicuro non c'è nulla?
    Credo che l'inghippo sia nella pagina dove mi scrive il risultato... qualche dritta su cosa cercare? Poi mi arrangio io
    Grazieeeeeeeeeeeeeee

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Bisognerebbe sapere come componi la query

  3. #3
    Più che obbligatori, non sarà che ti da un risultato dove Campo1 o Campo2 =""?

    Dovresti impostare la query in modo che il campo1 é posto come condizione di ricerca solo se diverso da "".

    (Se non lo avessi scritto io, sto consiglio non lo avrei capito!)
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  4. #4
    [supersaibal]Originariamente inviato da gemello.it
    Più che obbligatori, non sarà che ti da un risultato dove Campo1 o Campo2 =""?

    Dovresti impostare la query in modo che il campo1 é posto come condizione di ricerca solo se diverso da "".

    (Se non lo avessi scritto io, sto consiglio non lo avrei capito!) [/supersaibal]
    Esatto mi sa che è proprio lì il problema.
    Indago e ti faccio sapere.
    Grazieeeee

  5. #5
    Illuminazione
    Il problema non è che sorge perchè.... campo1 e campo2 dal form di ricerca li seleziono tramite menù a tendina?
    Cioè... avrò un campo predefinito che è "scegli..." oppure ""... se non scelgo nessuna voce per la ricerca...quindi .. non è che questo parametro influenza negativamente la ricerca???
    Cosa posso fare? Una cosa arzigogolata con un IF ? Del tipo , in parole povere, se il campo è "Scegli..." (quindi non è stato selezionato nulla) non considerare quel campo per la ricerca?
    Grazie

  6. #6
    Effettivamente un menu a tendina non lascia la libera scelta..
    Io con questo:
    Codice PHP:
    $nome = isSet($_POST["nome"]) ? $_POST["nome"] :  "";  $nome = isSet($_GET["nome"]) ? $_GET["nome"] : $nome; if (!$nome) {$nome="valore predefinito che vuoi dare tu";}; 
    ricevo le intestazioni sia con POST che con GET.

    Così sei sicuro che il campo non sarà mai vuoto.
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  7. #7
    [supersaibal]Originariamente inviato da gemello.it
    Effettivamente un menu a tendina non lascia la libera scelta..
    Io con questo:
    Codice PHP:
    $nome = isSet($_POST["nome"]) ? $_POST["nome"] :  "";  $nome = isSet($_GET["nome"]) ? $_GET["nome"] : $nome; if (!$nome) {$nome="valore predefinito che vuoi dare tu";}; 
    ricevo le intestazioni sia con POST che con GET.

    Così sei sicuro che il campo non sarà mai vuoto. [/supersaibal]
    Mmmmmmmm grazie...
    Stasera provo e ti so dire

  8. #8
    E se volessi sostituire i campi a tendina.... con quali altri tipi potrei farlo?
    Il campo1 e campo2 sono campi ben definiti....ergo il menù a tendina sarebbe perfetto..se non ci fosse il problema già discusso.
    I checkbox no perchè verrebbe una pagina troppo lunga e disordinata...altre idee???

  9. #9
    Allora perché non usi il menu a tendina!!

    Puoi aggiungere un campo testo e far decidere quale usare con un paio di radio button. La butto veloce:
    Codice PHP:
    if($_POST["radio"]=="campo1a"{$campo1= isSet($_POST["campo1a"]) ? $_POST["campo1a"] :  "";}
     else 
    "{$campo1= isSet($_POST["campo1b"]) ? $_POST["campo1b"] :  "";} 
    Opppure: Se si lascia vuoto ul campo testo, verrà preso in considerazione il menu a tendina
    Codice PHP:
    $campo1= isSet($_POST["campo1a"]) ? $_POST["campo1a"] :  $_POST["campo1b"]; 
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  10. #10
    Allora: Intanto prendi i dati dal modulo; se il dato non é vuoto, ci associ una variabile con dentro una condizione:
    Codice PHP:
    $campo1= isSet($_POST["campo1"]) ? $_POST["campo1"] :  ""; if (!$campo1) {$condizione1=""} else {$condizione1="AND campo1='$campo1'"};
    $campo2= isSet($_POST["campo2"]) ? $_POST["campo2"] :  ""; if (!$campo2) {$condizione2=""} else {$condizione2="AND campo2='$campo2'"};
    $campo3= isSet($_POST["campo3"]) ? $_POST["campo3"] :  ""; if (!$campo3) {$condizione3=""} else {$condizione3="AND campo3='$campo3'"}; 
    Poi fai la tua brava query al database; attenzione ad inserire almeno una condizione reale prima delle condizioni-variabile (in questo caso sono 2= prezzominimo e prezzomassimo).
    Codice PHP:
    $nomeSQL=mysql_query("SELECT * FROM tabella WHERE prezzo>'$prezzominimo' AND prezzo<'$prezzomassimo'  $condizione1 $condizione2 $condizione3 ORDER BY nome"  ); 
    Nel caso non dovessi mettere prezzo minimo e prezzo massimo, potresti mettere una condizione "fasulla", tipo:
    Codice PHP:
    $nomeSQL=mysql_query("SELECT * FROM tabella WHERE id!='' $condizione1 $condizione2 $condizione3 ORDER BY nome"  ); 
    In questo modo, se un campo viene lasiato vuoto, non influirà sulla ricerca.

    Ho scritto tutto al volo, se esce qualche difetto, debuggalo tu!
    Spero di essere stato chiaro!
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

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.