-
Ricerca nel DB help!
Ciao a tutti
Il problema: ho un form con 6 campi input che vanno a cercare dentro una tabella.
Tutti i sei campi non sono obbligatori. Come faccio a far comparire ricerche precise, e incrociate ad esempio se l'utente compila solo i campi 2 e 3 io gli devo far eseguire una query del tipo SELECT ...... WHERE campo=2 AND campo2=3, senza scrivere 6*6 = 36 query differenti, per ogni possibilità di compilazione del form??
rvbc
-
Non è molto difficile... basta solo ingegnarsi un pochino a comporre la query:
Codice PHP:
<?php
$and_on = false;
$query = "SELECT ... FROM ...";
if (isset ($_POST['campo1']))
{
$query .= " WHERE campo1 = '" . $_POST['campo1'] . "'";
$and_on = true;
}
// questo lo ripeti per tutti i campi successivi al secondo...
if (isset ($_POST['campo2']))
{
if (!$and_on) { $and_on = true; $query .= " WHERE " }
else $query .= " AND ";
$query .= "campo2 = '" . $_POST['campo2'] . "'";
}
...
$result = mysql_query ($query, $db);
while ($line = mysql_fetch_array ($result))
{
// ... elabora i risultati ...
}
La query dovrebbe comporsi sulla base dei criteri che stabilisci, in base ai campi compilati del modulo. Se nessun campo è compilato, i risultati non saranno filtrati. Un consiglio: fai qualche prova perché potrei essermi incasinato con gli apici...
Stammi bene...
-
Grazie mille
Grazie demential, nn ce ne sarei venuto fuori soprattutto xkè quella soluzione in principio la scartai poichè nn sapevo dove mi portava, mi sembrava troppo incasinata e non riuscivo a farla venire....
Sarei ricorso ad una tabella temporanea o alle 36 QUERY.
Grazie davvero, rvbc