Ho creato due tabelle dipendenti tra loro in mysql, dalle quali voglio estrarre dei dati se ci sono:
Tabella Autori: ID, Autore, Link_Autore
Tabella Libri: ID, Autore_ID, Titolo, Titolo_Originale, Data, Editore, Link_Titolo, Link_Titolo_Originale
Ho creato la pagina per il cerca: con i vari casi, però non capisco come mai quando cerco il titolo originale non mi da nessu risultato.
Io vorrei che se ad esempio cerco Pippo, e Pippo è sia un autore, che una parola di un titolo in lingua italiano e anche in lingua originale il tutto mi desse un responso del genere
Pippo (autore)
Pinco Pallino Pippo il mio miglior amico (Pippo is my good friends 1990) Nord (Titolo)
Pinco Pallino Pippo is my good friends 1990 (Titolo Originale)
Ho fatto un po di prove ma non riesco a fargli cercare quello che voglio vi posto il codice potreste darci un occhiata e sistemarmelo. Grazie per l'aiuto.
<?php
if(isset($_POST['submit']) && isset($_GET['go'])){
if(strlen($_POST['name'])==false){
echo "
Inserire almeno un dato</p>";
}
if(preg_match("/^[a-z A-Z]+/", $_POST['name'])){
if(strlen($_POST['name'])>0){ //Controllo che il Fiel Name sia piu lungo di 0 quindi non NULLO
$sql="SELECT * FROM autori WHERE Autore LIKE '%".$_POST['name']."%'";
//-run the query against the mysql query function
$result=mysql_query($sql);
//Guardo quante righe nel DB sono state trovate
$numRisultati = mysql_num_rows($result);
if($numRisultati > 0){ // se ho trovato almeno un risultato allora faccio partire il loop
//-create while loop and loop through result set
while($row=mysql_fetch_array($result)){
$autore=$row['Autore'];
$autori_bibliografie=$row['Link_Autore'];
//-display the result of the array
echo "<ul>\n";
echo "[*]"."<a href=\"$autori_bibliografie\">".$autore."</a>\n";
echo "[/list]";
}
}else{ //Else SE NON é PRESENTE NESSUNA RIGA DI DB QUINDI $numRisultati = 0
$sql="SELECT * FROM libri INNER JOIN autori ON libri.ID_Autori = Autori.ID WHERE Titolo LIKE '%".$_POST['name']."%'";
//-run the query against the mysql query function
$result=mysql_query($sql);
//Guardo quante righe nel DB sono state trovate
$numRisultati = mysql_num_rows($result);
if($numRisultati > 0){ // se ho trovato almeno un risultato allora faccio partire il loop
//-create while loop and loop through result set
while($row=mysql_fetch_array($result)){
$autore=$row['Autore'];
$titolo=$row['Titolo'];
$originale=$row['Titolo_Originale'];
$data=$row['Data'];
$editore=$row['Editore'];
$trama=$row['Link_Titolo'];
//-display the result of the array
echo "<ul>\n";
echo "[*]"."<a href=\"$trama\">".$autore." ".$titolo." ( ".$originale." ".$data." ) ".$editore."</a>\n";
echo "[/list]";
}
}else{ //Else SE NON é PRESENTE NESSUNA RIGA DI DB QUINDI $numRisultati = 0
echo "
Nessun Risultato Trovato</p>";
}
}
}
}
}
?>
</body>
</html>