Ciao a tutti. Spiego brevemente scenario e problema.
Ho un database che contiene 230 applicativi. Contenuti in TbApplicativi. Le caratteristiche di ogni applicativo come: device, sistema operativo, categoria di appartenenza, costo (pagamento/gratuito) sono gestite tramite relazione molti a molti.
Io sto creando un sito che ha come scopo quello di fornire una piattaforma per interrogare il DB con richieste combinate. Attraverso un form io chiedo all'utente le caratteristiche che preferisce e mostro gli applicativi che le soddisfano.
Il codice che ho scritto fino ad ora mi va a creare una tabella per ogni caratteristica selezionata nei form.
Riporto il codice PHP con cui vado a interrogare il DB e a formare la tabella di visualizzazione dei risultati in HTML.
Nell'esempio vado a chiedere al db ti farmi avere i dati degli applicativi per le scelte effettuate dall'utente riguardo: Categoria(11 categorie presenti), Devices (5 devices presenti) e Sistemaoperativo (5 sistemi operativi).
codice:$Categorie = isset($_POST['Categorie']) ? $_POST['Categorie'] : array(); $Devices = isset ($_POST['Devices']) ? $_POST['Devices'] : array(); $SOi = isset ($_POST['SOi']) ? $_POST['SOi'] : array(); foreach($Categorie as $categoria){ foreach ($Devices as $device){ foreach ($SOi as $SO){ echo "<h2 style= 'color: SteelBlue; margin-top: 40px'>Risultato per ". $nomecategoria. " " . $device . " " . $SO . "</h2>"; $query="SELECT tbapplicativi.NomeApplicativo as NomeApplicativo, tbproduttori.NomeProduttore as NomeProduttore,tbapplicativi.Descrizione as Descrizione, tbapplicativi.LinkAlSito as Link, GROUP_CONCAT(DISTINCT tbsistemioperativi.SistemaOperativo SEPARATOR ', ') AS SistemaOperativo, GROUP_CONCAT(DISTINCT tbdevices.NomeDevice SEPARATOR ', ') AS NomeDevices FROM tbapplicativi, tbcategorie, tbsistemioperativi, tbconnappso, tbdevices, tbconnappdevices, tbproduttori WHERE tbapplicativi.FkCategoria = $categoria AND tbconnappso.FkSO = $SO AND tbconnappdevices.FkDevices = $device AND tbapplicativi.PkApplicativo = tbconnappso.FkApp AND tbsistemioperativi.PkSo = tbconnappso.FkSO AND tbapplicativi.PkApplicativo = tbconnappdevices.FkApp AND tbdevices.PkDevice = tbconnappdevices.FkDevices AND tbapplicativi.FkProduttore = tbproduttori.PkProduttore GROUP BY tbapplicativi.PkApplicativo AND tbcategorie.PkCategoria"; $result= mysql_query($query); $numfields = mysql_num_fields($result); echo "<div style='width:100%;max-height:720px;overflow-y: scroll; margin-bottom: 68px;'> <table id='tabellarisultati' class='sortable'>\n<tr>"; for ($i=0; $i < $numfields; $i++) { echo '<th>'.mysql_field_name($result, $i).'</th>'; } echo "</tr>\n"; while ($row = mysql_fetch_row($result)) { echo '<tr><td>'.implode($row,'</td><td>')."</td></tr>\n"; } echo "</table></div>\n"; } } }
Ciò che voglio è avere una tabella che contenga tutti i risultati.
Grazie per l'aiuto.

Rispondi quotando
