• User Attivo

    Select COUNT su piùi campi

    Ciao a tutti,
    sono alle prese con una query che non riesco ad ottenere, spero in un vostro auto.

    Dunque ho una tabella composta in questo modo:
    tabella negozio_prodotti --> id | titolo | id_voce1 | id_voce 2
    tabella negozio_voci --> id_voce | voce

    L'utente dovrà aver la possibilità di eliminare i valori dalla tabella 'voci' solo se quest'ultimi non sono collegati alla tabella prodotti.

    Con il codice seguente funziona, però logicamente disabilita solo i checkbox collegati al campo id_voce1, putroppo non riesco a collegare anche il campo id_voce2
    [PHP]
    <?php $query_rs_voci = "SELECT COUNT(negozio_prodotti.id), negozio_voci.*
    FROM negozio_voci LEFT JOIN negozio_prodotti ON negozio_voci.id_voce = negozio_prodotti.id_voce1
    GROUP BY negozio_voci.id_voce ORDER BY voce ASC";
    $rs_voci = mysql_query($query_rs_voci, $conn) or die(mysql_error());

    while ($row_rs_voci = mysql_fetch_assoc($rs_voci)){
    if($row_rs_voci['COUNT(negozio_prodotti.id)']>0){
    $disabled = 'disabled'; }
    else { $disabled = $row_rs_voci['id_voce'];} ?>

    <tr>
    <td align="center" style="text-align:center; vertical-align:middle;">
    <input type="checkbox" class="checkbox" name="item[]" id="check" value= "<?php echo $row_rs_voci['id_voce']; ?>" <?php echo $disabled ?>/>
    </td>
    <td align="center" style="vertical-align:middle;"><?php echo $row_rs_voci['id_voce']; ?></a></td>
    <td style="vertical-align:middle;"><?php echo $row_rs_voci['voce']; ?></td>
    </tr>

    <?php } ?>

    [/PHP]

    grazie a tutti.


  • User Attivo

    Mi risondo da solo 😄
    ho risolto in questo modo, posto la query potrebbe essere utile a qualcuno:

    [PHP]
    $query_rs_voci = "SELECT COUNT(n1.id), COUNT(n2.id), COUNT(n3.id), COUNT(n4.id), COUNT(n5.id), COUNT(n6.id), negozio_voci.*
    FROM negozio_vociLEFT JOIN negozio_prodotti AS n1 ON negozio_voci.id_voce = n1.id_voce1
    LEFT JOIN negozio_prodotti AS n2 ON negozio_voci.id_voce = n2.id_voce2
    LEFT JOIN negozio_prodotti AS n3 ON negozio_voci.id_voce = n3.id_voce3
    LEFT JOIN negozio_prodotti AS n4 ON negozio_voci.id_voce = n4.id_voce4
    LEFT JOIN negozio_prodotti AS n5 ON negozio_voci.id_voce = n5.id_voce5
    LEFT JOIN negozio_prodotti AS n6 ON negozio_voci.id_voce = n6.id_voce6
    GROUP BY negozio_voci.id_voce ORDER BY voce ASC";[/PHP]