ciao per me la cosa migliore è costruire passo passo la stringa di ricerca, io ho fatrto un piccolo motore di ricerca, e la stringa mi viene costruita in base ai campi che vengono riempiti dall'utente!
ti posto il codice, così puoi dargli un'occhiata, non è nulla di che, ma magari può esserti utile:
ricerca con il criterio OR:
codice:
if ((($_POST[chiave]) == ("")) and (($_POST[chiave_testata]) == ("")) and (($_POST[chiave_ISSN]) == ("")) and (($_POST[chiave_soggetto]) == ("")))
die ("
<center><font size=\"4\" color=\"#000066\">Bisogna Inserire Almeno Un Campo Per Poter Effettuare La Ricerca </font></center>");
$query="";
if ($_POST['rata'] != "0")
{
$query .= "SELECT * FROM riviste WHERE";
if ($_POST['chiave'] != "")
{
$query .= " editore LIKE '%" . $_POST['chiave'] . "%' or ";
}
if ($_POST['chiave_testata'] != "")
{
$query .= " testata LIKE '%" . $_POST['chiave_testata'] . "%' or ";
}
if ($_POST['chiave_ISSN'] != "")
{
$query .= " ISSN = '" . $_POST['chiave_ISSN'] . "' or ";
}
if ($_POST['chiave_soggetto'] != "")
{
$query .= " soggetto LIKE '%" . $_POST['chiave_soggetto'] . "%' or ";
}
$query.="0";
ricerca con il criterio AND:
codice:
if (($_POST['rata'])!=("1")){
$query .= "SELECT * FROM riviste WHERE";
$i=0;
if ($_POST['chiave'] != "")
{
$query .= " editore LIKE '%" . $_POST['chiave'] . "%' ";
$i=1;
}
if (($_POST['chiave_testata'] != "") and ($i==1))
{
$query .= " and testata LIKE '%" . $_POST['chiave_testata'] . "%'";
$i=2;
}
if (($_POST['chiave_testata'] != "") and ($i==0))
{
$query .= " testata LIKE '%" . $_POST['chiave_testata'] . "%'";
$i=3;
}
if (($_POST['chiave_ISSN'] != "") and (($i==1)or($i==2)or($i==3)))
{
$query .= " and ISSN = '" . $_POST['chiave_ISSN'] . "' ";
$i=4;
}
if (($_POST['chiave_ISSN'] != "") and ($i==0))
{
$query .= " ISSN = '" . $_POST['chiave_ISSN'] . "' ";
$i=5;
}
if (($_POST['chiave_soggetto'] != "") and (($i==1)or($i==2)or($i==3)or($i==4)or($i==5)))
{
$query .= " and soggetto LIKE '%" . $_POST['chiave_soggetto'] . "%'";
}
if (($_POST['chiave_soggetto'] != "") and ($i==0))
{
$query .= " soggetto LIKE '%" . $_POST['chiave_soggetto'] . "%'";
}