• User

    Conta valori in tabella MYQSL

    Vi allego il codice.
    L'obiettivo è inserire nella table la conta del numero di volte che compare il valore $row['apiario'] nella tabella "alveari".
    In pratica bisogna sostituire le XX che vedete nel codice al fine di ottenere la conta.

    Spero di essere stato chiaro.
    Potete aiutarmi ?

    <?php
            // connect to the database
            include('connect-db.php');
    
            // get results from database
            $result = mysql_query("SELECT * FROM apiari");
    		$conta = mysql_query("SELECT apiario FROM alveari WHERE XX")
            or die(mysql_error());  
                    
            // display data in table
            echo "<table>";
            echo "<thead> <th>ID apiario</th> <th>Località Apiario</th> <th>Latitudine</th> <th>Longitudine</th> <th>Numero di alveari</th> <th></th>  <th></th></thead>";
    
            // loop through results of database query, displaying them in the table
            while($row = mysql_fetch_array( $result )) {
                    
                    // echo out the contents of each row into a table
                    echo "<tr>";
                    echo '<td>' . $row['id'] . '</td>';
                    echo '<td>' . $row['apiario'] . '</td>';
                    echo '<td>' . $row['latitudine'] . '</td>';
                    echo '<td>' . $row['longitudine'] . '</td>';
                    echo '<td>' . $conta . ' </td>';
    				echo '<td><a href="edit.php?id=' . $row['id'] . '" class="small nice radius blue button">Modifica</a></td>';
                    echo '<td><a href="delete.php?id=' . $row['id'] . '">Cancella</a></td>';
                    echo "</tr>"; 
            } 
    
            // close table>
            echo "</table>";
    ?>
    

  • ModSenior

    Ciao marcopietro,
    non ho ben capito cosa vuoi fare, potresti essere più chiaro su cosa devi ottenere alla fine? Magari usando un esempio.


  • User

    se ho capito bene vuoi sapere il numero di righe nel database alveare??

    [PHP]
    $conta = mysql_query("SELECT count(apiario) as totale FROM alveari");

    $data = mysql_fetch_assoc($conta);

    echo $data['totale'];
    [/PHP]


  • User

    Ti basta sostituire questa riga di codice:
    [PHP]$conta = mysql_query("SELECT apiario FROM alveari WHERE XX")
    [/PHP]
    con questa:
    [PHP]$conta=mysql_num_rows($result);
    [/PHP]
    Prova e fammi sapere il result 😉


  • User

    Non esattamente,
    mi occorre sapere il numero di volte che nella tabella XXX mi compare il valore YYY equivalente al valore ZZZ nella tabella JJJ.

    Un esempio testuale:

    **Tabella 1
    Nome Cognome
    **Mario Rossi
    Luigi Rossi
    Luca Bianchi

    **Tabella 2
    Cognome Lavoro
    **Rossi Impiegato
    Rossi Idraulico
    Bianchi Calzolaio

    ***Nella mia tab html mi deve comparire

    Cognomi Numero di volte che è idraulico
    Rossi 1
    Bianchi 0


    Purtroppo ho due tabelle distinte per cui devo fare un riferimento incrociato. è quello che non riesco a fare: impostare una variabile che mi conti quante volte il valore presente nella riga 1 della tabella 1 compaia nella tabella 2 e poi mostrarmelo in una tabella html.


  • User
    
    SELECT Cognome, Count(*) as Conta
    FROM tabella1 INNER JOIN tabella2 ON tabella1.cognome=tabella2.cognome
    WHERE lavoro='idraulico'
    GROUP BY Cognome
    
    

    In questo modo, se non erro, dovrebbe raggruppare per cognomi (solo quelli associati a idraulico almeno una volta) quindi non ti uscirà "BIANCHI 0".
    Se è essenziale per te avere quel risultato dovresti usare la HAVING per mettere la condizione sul raggruppamento.