Buongiorno ragazzi,
ho un piccolo problema che non riesco a capire.
Prima di tutto il codice:
Codice PHP:
<?php
$k = $_GET['k'];
if ( $k == TRUE && $k != "" )
{
if ( strlen($k) >= 3 )
{
$terms = explode(" ", $k);
//depuriamo la stringa da cercare sul database
$k = mysql_escape_string(stripslashes($k));
$query = "SELECT * FROM Opera WHERE ";
$i=0;
foreach ($terms as $each)
{
$i++;
if($i == 1)
$query .= "TipoOpera LIKE '%$each%' OR Titolo LIKE '%$each%' OR Tecnica LIKE '%$each' ....ecc ";
else
$query .= "OR TipoOpera LIKE '%$each%' OR Titolo LIKE '%$each%' OR Tecnica LIKE '%$each' ...ecc ";
//connect
mysql_connect("localhost","root", "db09");
mysql_select_db("Tesi");
$query = mysql_query($query);
$numrows = mysql_num_rows($query);
if($numrows>0){
while($row=mysql_fetch_assoc($query)){
$TipoOpera= $row['TipoOpera'];
$Titolo = $row['Titolo'];
$Tecnica= $row['Tecnica'];
..... ecc
echo "tipo: $TipoOpera
";
echo "titolo: $Titolo
";
echo "tecnica: $Tecnica
";
..... ecc
?>
<hr />
<?php
}
}
else {
echo "Nessun risultato per la chiave: \"$k\"";
echo mysql_error();
//disconnessione
mysql_close();
}
}
else {echo "Devi inserire almeno 3 caratteri";}
}
else {echo 'Non hai compilato il modulo di ricerca';}
Se eseguo così la query ottengo tutti i risultati sperati. Mentre se faccio il JOIN e la query diventa:
Codice PHP:
$query = "SELECT * FROM (((Autore JOIN Creazione ON ID=Autore)JOIN Opera On Opera=Opera.ID)JOIN File ON Opera.ID=File.Opera) WHERE ";
(la quale è corretta se inserita in phpmyadmin) ottengo sempre:
codice:
Nessun risultato per la chiave
per qualsiasi input inserisca.
C'è qualche errore? Non ho usato qualche accorgimento?
Fatemi sapere nel caso vi risultasse intuitivo.
Grazie