- Home
- Categorie
- Coding e Sistemistica
- PHP
- Query multiple su più tabelle
-
Query multiple su più tabelle
Ciao amici del froum GT,
sto facendo come attività di volontariato un portale per mettere online una biblioteca del mondo SCOUT. Potete richiedrmi l'indirizzo dove è online il tutto
La prima quesry funziona bene. La seconda invece, sembra dare di matto. Se scelgo, a titolo di esempio, 'Libro' e poi gli altri campi ottengo il risultato, se scelgo sempre ad esempio 'Tesi' (sempre nel primo campo) non ottengo nulla.
Posso chidervi una mano? Peraltro con tre soli campi, prima di inserire anche il campo Oggetto tutto sembrava andare bene
Grazie,
marco p.
{php}*
// questa funziona benissimo
$sql = " SELECT COUNT() FROM tbl_generale WHERE Oggetto LIKE '%".$ID_Oggetto."%' AND Settore LIKE '%".$ID_Settore."%' AND Lingua LIKE '%".$ID_Lingua."%' AND Illustrazioni LIKE '%".$ID_Illustrazioni."%' ";
$query = mysql_query ($sql, $connessione) or die ("Problemi con la visualizzazione");
while ($rigo = mysql_fetch_array ($query))
{
$quiquoqua = $rigo["COUNT()"];
}//questa funziona solo in parte ...
$sql1 = "SELECT tbl_generale.ID_Generale, tbl_generale.Titolo, tbl_generale.Anno, tbl_oggetti.Oggetto, tbl_settore.Settore, tbl_lingua.Lingua, tbl_illustrazioni.Illustrazioni
FROM tbl_generale
INNER JOIN tbl_oggetti ON tbl_generale.Oggetto = tbl_oggetti.ID_Oggetto
INNER JOIN tbl_settore ON tbl_generale.Settore = tbl_settore.ID_Settore
INNER JOIN tbl_illustrazioni ON tbl_generale.Illustrazioni = tbl_illustrazioni.ID_Illustrazioni
INNER JOIN tbl_lingua ON tbl_generale.Lingua = tbl_lingua.ID_Lingua
WHERE tbl_generale.Oggetto LIKE '%".$ID_Oggetto."%'
AND tbl_generale.Settore LIKE '%".$ID_Settore."%'
AND tbl_generale.Lingua LIKE '%".$ID_Lingua."%'
AND tbl_generale.Illustrazioni LIKE '%".$ID_Illustrazioni."%' ";
$query1 = mysql_query($sql1, $connessione) or die ("Problemi con la visualizzazione");// ......
{/php}
-
Cosa intendi con solo in parte? E' proprio necessario di avere un select con quattro join? Mi pare troppo.
-
Ciao,
intendo che se l'oggetto è Libri (ID_Oggetto = 2) funziona alla grande, se invece l'ID_Oggetto cambia (3 = tesi ecc. ecc.) non funziona più. O meglio la prima query conta correttamente i dati in archivio, la seconda non restitutisce risultati...
quindi formalmente lo script è giusto nella pratica mi fa impazzire...{php}
// conteggio oggetti che soddisfano la ricerca
$sql = "SELECT COUNT() FROM tbl_generale WHERE Oggetto = '3' ";
$query = mysql_query ($sql, $connessione) or die ("Problemi con la visualizzazione");
while ($rigo = mysql_fetch_array ($query))
{
$quiquoqua = $rigo["COUNT()"];
}
echo "<div align="center"> Centro Studi e Documentazione Scout - Mario Mazza - GE <p> Elenco <b>TESI</b>: <b>$quiquoqua</b></p></div><br>";
echo "
<table width = "80%" border="1" align="center">
<tr valign="top" height="30">
<td width="10%" valign="top" bgcolor=ffffcc>ID</td>
<td width="40%" valign="top" bgcolor=ffffcc>Titolo</td>
<td width="10%" valign="top" bgcolor=ffffcc>Anno</td>
<td width="10%" valign="top" bgcolor=ffffcc>Settore</td>
<td width="15%" valign="top" bgcolor=ffffcc>Lingua</td>
<td width="15%" valign="top" bgcolor=ffffcc>Illustrazioni</td>
</tr>";
// elenco oggetti che soddisfano la ricerca
$sql1 = "SELECT * FROM tbl_generale
INNER JOIN tbl_lingua ON tbl_generale.Oggetto = tbl_lingua.ID_lingua
INNER JOIN tbl_illustrazioni ON tbl_generale.Illustrazioni = tbl_illustrazioni.ID_Illustrazioni
INNER JOIN tbl_settore ON tbl_generale.Settore = tbl_settore.ID_Settore
WHERE tbl_generale.Oggetto = '3' ";$query1 = mysql_query($sql1, $connessione) or die ("Problemi con la visualizzazione");
while ($rigo = mysql_fetch_array($query1))
{
$ID_Generale = $rigo["ID_Generale"];
$Titolo = $rigo["Titolo"];
$Anno = $rigo["Anno"];
$Settore = $rigo["Settore"];
$Lingua = $rigo["Lingua"];
$Illustrazioni = $rigo["Illustrazioni"];
echo "
<tr valign="top" height="30">
<td width="10%" valign="top">$ID_Generale</td>
<td width="40%" valign="top">$Titolo</td>
<td width="10%" valign="top">$Anno</td>
<td width="10%" valign="top">$Settore</td>
<td width="15%" valign="top">$Lingua</td>
<td width="15%" valign="top">$Illustrazioni</td>
</tr>";
}
echo "</table>";
mysql_close($connessione);{/php}