- Home
- Categorie
- Coding e Sistemistica
- Coding
- Ricerca Dinamica
-
Ricerca Dinamica
Ciao a tutti.
vorrei aggiungere ai miei siti la funzione di ricerca.Però non vorrei che tutti i campi fossero obbligatori, così ho fatto in modo di impostare diverse query a seconda se i campi fossero pieni o vuoti.
Esempio:
[php]
If (empty ($_POST['campo1']) && empty ($_POST['campo2']) && empty (($_POST['campo3'])) {
$search = mysql_query("SELECT * FROMtabella
INNER JOIN tabella2 USING (Id) WHERE condizione " );
$total = mysql_num_rows($search);
}
If (!empty ($_POST['campo1']) && empty ($_POST['campo2']) && empty (($_POST['campo3'])) {
$search = mysql_query("SELECT * FROMtabella
INNER JOIN tabella2 USING (Id) WHERE condizione AND 'campo1' = valore " );
$total = mysql_num_rows($search);
}
eccetera...
[/php]Ovviamente viene fuori un codice lunghissimo senza contare che se dovessi aggiungere un nuovo campo di ricerca dovrei riscrivere tutto il codice.Sono convinto che ci deve essere un modo più semplice per farla funzionare.
Voi come lo impostereste?
-
Ciao Ivan88,
considerando che la query di base rimane uguale ha più senso fare una cosa tipo:
[php]
SELECT * FROM tabella WHERE $condizioni
[/php]
E prima generi dinamicamente $condizioni utilizzando gli IF aggiungendo le condizioni necessarie, piuttosto che scrivere ogni volta la query interamente considerando tutti i casi possibili.
-
Grazie!
-
Lascio un consiglio ai posteri :
Impostate $condizioni come array, fate un array_push per ogni condizione non vuota e poi implodetelo, così fate in frettissima ad aggiungere nuove condizioni!