• User Newbie

    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}


  • User

    Cosa intendi con solo in parte? E' proprio necessario di avere un select con quattro join? Mi pare troppo.


  • User Newbie

    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}