Codice PHP:
//Verifica i dati della form
$Ente = trim($_POST['Ente']);
$Tipo = trim($_POST['Tipo']);
//Converte i caratteri speciali
$Ente = htmlspecialchars($Ente);
$NomeStr = trim($_POST['Nome']);
$Sesso = trim($_POST['Sesso']);
if ($Sesso=="M") {
$M2 = "t1.M = '1' AND ";
} elseif ($Sesso=="F") {
$F2 = "t1.F = '1' AND ";
}
$Eta = trim($_POST['Eta']);
if ($Eta=="tutte") {
$Eta2 = "(t1.Eta = '$Eta' OR t1.Eta != '$Eta') AND";
} elseif ($Eta=="Da 18 anni in poi" OR $Eta > 18) {
$Eta2 = "(t1.Eta = 'Da 18 anni in poi' OR t1.Eta = 'tutte' OR t1.Eta LIKE '%21%' OR t1.Eta LIKE '%19%' OR t1.Eta LIKE '%20%' OR t1.Eta LIKE '%22%' OR t1.Eta LIKE '%23%') AND";
}
$Provincia = trim($_POST['Provincia']);
if ($Provincia!="Tutte") {
$Provincia2 = "AND t2.Provincia = '$Provincia'";
}
$Handicap = trim($_POST['Handicap']);
$Handicap2 = "t1.Handicap = '$Handicap' AND";
$Comportamento = trim($_POST['Comportamento']);
$Comportamento2 = "t1.Comportamento = '$Comportamento'";
$Intervento = trim($_POST['Intervento']);
if ($Intervento!="Tutte") {
$Intervento2 = "AND t1.Area = '$Intervento'";
}
$Madre = trim($_POST['Madre']);
$Maltrattata = trim($_POST['Maltrattata']);
if ($Madre=="1" AND $Maltrattata=="1") {
$Donne = "AND (t2.Tipo = '5' OR t2.Tipo = '9')";
} elseif ($Madre=="1" AND $Maltrattata=="0") {
$Donne = "AND t2.Tipo = '5'";
} elseif ($Madre=="0" AND $Maltrattata=="1") {
$Donne = "AND t2.Tipo = '9'";
} elseif ($Madre=="0" AND $Maltrattata=="0") {
$Donne = "";
}
if ($NomeStr!="") {
$where = "t2.Nome LIKE '%$NomeStr%'";
} else {
$where = "$M2 $F2 $Eta2 $Handicap2 $Comportamento2 $Intervento2 $Provincia2 $Donne";
}
//Strutture
$query = "SELECT t2.ID as IDStruttRic, t2.Nome as NomeStruttRic, t2.Url as UrlStruttRic, t2.Tipo as TipoStruttRic, t1.Eta as EtaStrutt FROM strutture as t2 JOIN dati_strutt as t1 ON t2.ID = t1.Struttura WHERE $where ORDER BY t2.Nome";
$result = mysql_query($query, $db);
$Dati_Trovati = mysql_num_rows($result);
$query4 = "SELECT * FROM provincie WHERE ID = '$Provincia'";
$result4 = mysql_query($query4, $db);
$row4 = mysql_fetch_array($result4);
$EnteProvincia = $row4["Provincia"];
if ($Provincia=="Tutte") {
$Provincia3 = "Tutte";
} else {
$Provincia3 = $EnteProvincia;
}
if ($Madre=="1") {
$Madre3 = "Si";
} else {
$Madre3 = "No";
}
if ($Maltrattata=="1") {
$Maltrattata3 = "Si";
} else {
$Maltrattata3 = "No";
}
if ($Handicap=="1") {
$Handicap3 = "Si";
} else {
$Handicap3 = "No";
}
if ($Comportamento=="1") {
$Comportamento3 = "Si";
} else {
$Comportamento3 = "No";
}
$query3 = "INSERT INTO ricerche2 (Sesso,Eta,Provincia,Handicap,Area,Nome,Risultati,Comportamento,Madre,Maltrattata,Ente,Tipo,Data) VALUES ('$Sesso', '$Eta', '$Provincia3', '$Handicap3', '$Intervento', '$NomeStr', '$Dati_Trovati', '$Comportamento3', '$Madre3', '$Maltrattata3', '$Ente', '$Tipo', Now())";
$result3 = mysql_query($query3, $db);
if ($Dati_Trovati==0 OR $Sesso=="" OR $Eta=="" OR $Handicap=="" OR $Intervento=="" OR $Provincia=="") {
echo "<center>
[b]Non ci sono risultati[/b]
<a href=\"javascript:history.back()\">Indietro</a>
</center>";
} else {
while($row = mysql_fetch_array($result)) {
$IDStruttRic = $row["IDStruttRic"];
$NomeStruttRic = $row["NomeStruttRic"];
$UrlStruttRic = $row["UrlStruttRic"];
$TipoStruttRic = $row["TipoStruttRic"];
$EtaStrutt = $row["EtaStrutt"];
$EtaStrutt2 = strstr($EtaStrutt, '19');
$EtaStrutt3 = strstr($EtaStrutt, '20');
$EtaStrutt4 = strstr($EtaStrutt, '21');
$EtaStrutt5 = strstr($EtaStrutt, '22');
$EtaStrutt6 = strstr($EtaStrutt, '23');
if (($EtaStrutt!="tutte" AND $EtaStrutt!="Da 18 anni in poi" AND $EtaStrutt2==true AND $EtaStrutt3==true AND $EtaStrutt4==true AND $EtaStrutt5==true AND $EtaStrutt6==true) OR ($Sesso=="M" AND ($TipoStruttRic=="5" OR $TipoStruttRic=="9"))) {
$Eta3 = explode(" - ", $EtaStrutt);
$min = $Eta3[0];
$max = $Eta3[1];
}
if (((is_numeric($Eta) AND $Eta < $min OR $Eta > $max) AND ($Eta!="tutte" AND $Eta!="Da 18 anni in poi" AND $EtaStrutt2==true AND $EtaStrutt3==true AND $EtaStrutt4==true AND $EtaStrutt5==true AND $EtaStrutt6==true) AND $NomeStr=="") OR ($Sesso=="M" AND ($TipoStruttRic=="5" OR $TipoStruttRic=="9"))) {
} elseif ((is_numeric($Eta) AND $Eta >= $min AND $Eta <= $max AND $NomeStr=="") OR (($Eta=="tutte" OR $Eta=="Da 18 anni in poi" OR $EtaStrutt2==false OR $EtaStrutt3==false OR $EtaStrutt4==false OR $EtaStrutt5==false OR $EtaStrutt6==false) AND $NomeStr=="") OR $NomeStr!="") {
//Se l'url è indicato aggiunge il link altrimenti si linka alla pagina interna
if ($UrlStrutt!="") {
echo "[*]<a href=\"$UrlStruttRic\" target=\"_blank\">$NomeStruttRic</a>[*]
";
} else {
echo "[*]<a href=\"pag.php?Pag=struttura&Struttura=$IDStruttRic\">$NomeStruttRic</a>
";
}
}
}
}
Lo so che la ricerca è un pò, molto, macchinosa, ma purtroppo le codizioni quelle devono essere. Il problema mi nasce se metto l'età da 0 a 5, per es. 2, mi da' anche le strutture da 6 anni in su, per es. 6 - 11, quindi non rispetta $min e $max. Se qualcuno ci capisce può aiutarmi? Thanks