Conteggio campi quantità tabella database

di il
2 risposte

Conteggio campi quantità tabella database

Ho un file php in cui ho diverse stanze. In queste stanze sono presenti vari oggetti ognuno dei quali ha un campo "quantità". Nel file php, sotto ogni stanza, vorrei che comparisse il numero di oggetti all'interno, che prendo dal campo quantità di ogni oggetto presente e sommando quelli che si trovano nella stessa stanza. Come posso fare? Ho provato questo ma non funziona:
<?php

    $username = $_SESSION['username'];
    
    $categoria=strtolower($_GET['categoria']);
    $categoria_stanza=$_GET['categoria'];
    

    $stanza_corrente=mysqli_query($db, "SELECT nome_stanza
    FROM stanza
    WHERE BINARY stanza.nome_categoria= BINARY '$categoria_stanza'");
    $num = mysqli_num_rows($stanza_corrente);

    for($i = 1; $i<= $num; $i++){
      $stanza_tabella = mysqli_fetch_assoc($stanza_corrente);
      $stanza_nome= $stanza_tabella["nome_stanza"];
    }

    for ($k=0; $k<count($stanza_tabella); $k++) {
    $numero=mysqli_query($db, "SELECT nome_categoria, nome_stanza, sum(quantita) as conta
    FROM `".$categoria."`
    WHERE BINARY `".$categoria."`.user_utente = BINARY '$username' and BINARY `".$categoria."`.nome_stanza = BINARY '$stanza_nome'
    GROUP BY nome_categoria, nome_stanza");
    $oggetto = mysqli_fetch_assoc($numero);
    $count = mysqli_num_rows($numero);
    $quantita=$oggetto["conta"];

    }
Ho notato però che in questo modo "quantità" non contiene effettivamente ciò che voglio. Qualcuno può aiutarmi?

2 Risposte

  • Re: Conteggio campi quantità tabella database

    Se vuoi sommare tra più numeri, crea un contenitore di variabile array e usa array_sum. [CODE]$arr = array(); //count stanze, fine ciclo $num = 2; //Simulazione ciclo for $i, inizia a 0 $i = 0; //Prima query $arr[$i] = 2; //Seconda query //Simulazione ciclo for, $i è avanzato a 1 $i = 1; $arr[$i] = 5; if($i == $num && !empty($arr)) { var_dump(array_sum($arr)); } Giustamente qui il ciclo for è inteso per minore di 2 ($i < $num), se dentro il ciclo eseguo n volte l'istruzione if ma solo quando è uguale stampo a video la somma dei numeri. Se lo metti dopo il ciclo, puoi semplificare l'istruzione con !empty.
  • Re: Conteggio campi quantità tabella database

    Grazie per la risposta, ho risolto!
Devi accedere o registrarti per scrivere nel forum
2 risposte