Problema con php per calcolo costo percentuale

Matteoarm99

Nuovo Utente
20 Mar 2020
6
0
1
Ciao,
Sto realizzando un gestionale che calcola il costo di ricette di pasticceria formate da ingredienti, semilavorati e prodotti finiti.
Avrei bisogno di calcolare il costo percentuale di ciascun ingrediente nella ricetta. Per esempio se metto 300 grammi di crema a 10 €/kg e 500 grammi di pasta frolla a 3 €/kg vorrei calcolare il costo percentuale come: $costo%crema = $prezzocrema * $pesocrema / $pesotot
Ho provato a scrivere questo codice ma non funziona.
PHP:
<table class="table table-striped" id="table_ingredienti">


              <thead class="bg-secondary text-white">

                <tr>

                  <th scope="col">Nome</th>

                  <th scope="col">Prezzo in €/kg</th>

                  <th scope="col">Peso in grammi</th>

                  <th scope="col">Costo</th>

                  <th scope="col">Costo percentuale</th>

                </tr>

              </thead>

              <tbody>

            <tr>

                    <?php

                  if($_GET["tablename"]==="product"){

                  $sql_query = "SELECT * FROM product_in_product, product WHERE product_in_product.id_prod1=136 and product_in_product.id_prod2=product.id";

                  $result = $conn->query($sql_query);

                  if ($result->num_rows > 0) {

                    while ($row=mysqli_fetch_row($result)){

                      //echo "$row[0].',.$row[1].,.$row[2].<p>";

                      $pesotot = "SELECT SUM(quantita) FROM product_in_product, product";

                      $price=(float)$row[6] * $row[2] / 1000;

                      $costoP=$row[6] * $row[2] / $pesotot;

                      echo "<tr>";

                      echo

                        "

                          <th>$row[4]</th>

                          <th>$row[6] €</th>

                          <th>$row[2]</th>

                          <th>$price</th>

                          <th>$costoP</th>";

                      }

                      echo "</tr>";

                  }else

                    echo "<tr>Non è stato inserito nessun elemento in questa</tr>";


                

                  }else if($_GET["tablename"]==="semiproduct"){

                    $sql_query = "SELECT * FROM product_in_semi, semiproduct, product WHERE semiproduct.idSemi=$_GET[id] and product_in_semi.id_semi=semiproduct.idSemi and product_in_semi.id_prod=product.id";

                  $result = $conn->query($sql_query);

                  if ($result->num_rows > 0) {

                    while ($row=mysqli_fetch_row($result)){

                      //echo "$row[0].',.$row[1].,.$row[2].<p>";

                      $pesotot = "SELECT SUM(quantita) FROM product_in_semi, semiproduct, product";

                      $price=(float)$row[11] * $row[2] / 1000;

                      $costoP=$row[11] * $row[2] / $pesotot;

                      echo "<tr>";

                      echo

                        "

                          <th>$row[9]</th>

                          <th>$row[11] €</th>

                          <th>$row[2]</th>

                          <th>$price</th>

                          <th>$costoP</th>";

                      }

                      echo "</tr>";

                  }else

                    echo "<tr>Non è stato inserito nessun elemento in questa</tr>";

                

                  }else if($_GET["tablename"]==="finiteproduct"){

                    $sql_query = "SELECT * FROM product_in_finite, finiteproduct, product WHERE finiteproduct.idFinite=$_GET[id] and product_in_finite.idF=finiteproduct.idFinite and product_in_finite.idP=product.id";

                  $result = $conn->query($sql_query);

                  if ($result->num_rows > 0) {

                    while ($row=mysqli_fetch_row($result)){

                      //echo "$row[0].',.$row[1].,.$row[2].<p>";

                      $pesotot = "SELECT SUM(quantita) FROM product_in_finite, finiteproduct, product";

                      $price=(float)$row[11] * $row[2] / 1000;

                      $costoP=$row[11] * $row[2] / $pesotot;

                      echo "<tr>";

                      echo

                        "

                          <th>$row[9]</th>

                          <th>$row[11] €</th>

                          <th>$row[2]</th>

                          <th>$price</th>

                          <th>$costoP</th>";

                      }

                      echo "</tr>";

                  }else

                    echo "<tr>Non è stato inserito nessun elemento in questa</tr>";

                

                  }

                ?>

                  </tr>

            </tbody>

            </table>
In allegato un'immagine del messaggio d'errore che compare.
Se mi sono spiegato male o necessitate di qualche informazione in più chiedete pure.
Grazie in anticipo a chi mi darà una mano.
 

Allegati

  • tabella-ingredienti.png
    tabella-ingredienti.png
    131,6 KB · Visite: 274
Ultima modifica di un moderatore:

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
accorperei le 3 select, dei componenti, semilavorati e componenti finiti in modo da ottenere un'unica query
magari inserendoci anche il totale della quantità
(si possono differenziare inserendo in ciascuna select una costante, 0 = totale, 1 = componenti …..)
in questo modo si semplifica molto lo script php
per scriverti la query dovresti pubblicare le 3 tabelle con i relativi campi
e magari un paio di ricette d'esempio
 
Ultima modifica:

Matteoarm99

Nuovo Utente
20 Mar 2020
6
0
1
accorperei le 3 select, dei componenti, semilavorati e componenti finiti in modo da ottenere un'unica query
magari inserendoci anche il totale della quantità
(si possono differenziare inserendo in ciascuna select una costante, 0 = totale, 1 = componenti …..)
in questo modo si semplifica molto lo script php
per scriverti la query dovresti pubblicare le 3 tabelle con i relativi campi
e magari un paio di ricette d'esempio
Allego le tre tabelle. Le ricette possono essere fatte casualmente intanto. Grazie mille
 

Allegati

  • tabella-finite-in-finite.png
    tabella-finite-in-finite.png
    195,4 KB · Visite: 266
  • tabella-product-in-finite.png
    tabella-product-in-finite.png
    180,3 KB · Visite: 271
  • tabella-semi-in-finite.png
    tabella-semi-in-finite.png
    194,3 KB · Visite: 246

Tommy03

Utente Attivo
6 Giu 2018
614
58
28
18
Vicenza
Riguardo l'errore che hai postato, quello "A non-numeric value encountered in" dovrebbe essere dovuto al fatto che $pesotot chetu esprimi in una divisione indica soltanto una query, non un valore, quindi dovresti cambiare questa parte:
PHP:
$peso = "SELECT SUM(quantita) AS peso FROM product_in_finite, finiteproduct, product";
$res = $conn->query($peso);
while ($rowpeso=mysqli_fetch_row($res)){
$pesotot=$rowpeso['quantita']
In questo modo se la query che hai messo è giusta dovresti trovare un valore numerico.
Invece per risolvere il problema " Division by zero" penso ti basti mettere un if davanti alla riga 1179, tipo:
PHP:
if($row[2] != 0){
//riga 1179
}else{
//altre istruzioni
}
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.402
338
83
@Matteoarm99
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
PHP (2).png
quando posti del codice php, oppure la funzione codice dalla barra degli strumenti
box inserisci.png

Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!
Grazie

Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
Allego le tre tabelle. Le ricette possono essere fatte casualmente intanto. Grazie mille
alleghi 3 immagini, e devo riprodurre ricette casualmente,
mi costringi a lavorare più del dovuto per aiutarti,
aiutami tu per primo, postando tabelle ed esempi in formato testo, con cui io possa fare copia incolla senza spendere tempo

ps, poi manca la tabella prodotti richiamata nelle select….
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
L [PHP] Problema con Telegram PHP 1
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
M [PHP] Problema con query select PHP 2
S [PHP] Problema con istruzione "use" PHP 23
Cosina [PHP] fwrite problema con le parole accentate PHP 9
F [PHP] Problema con number_format PHP 3
C Apache Cordova problema con php Programmazione 1
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F [PHP] Problema con array multidimensionale PHP 4
F Problema con pagine login in PHP PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
C [PHP] problema con un esercizio PHP 2
P [PHP] Problema con accenti ed apostrofi PHP 0
R [PHP] Problema stampa array bidimensionali con formula $html.=<<<myHtml... PHP 2
M [PHP] problema con preg_match PHP 11
L [PHP] problema con upload e javascript (upload multiplo) Javascript 2
D [PHP] problema con xml PHP 13
T4MAR4 [PHP] Problema ricerca con apostrofo PHP 2
xone Problema FPDF con pagina dinamica PHP PHP 1
A Problema con getCurrentPosition e passaggio variabili da javascript a PHP Javascript 3
SebaGravi [PHP] problema url semantici con .htaccess PHP 3
L [PHP] problema parsing con comando file get contents PHP 7
L Problema con recupero dati in PHP cURL e JAVA con server PHP 1
zammaeng [PHP] Problema form con lista PHP 8
M [PHP] Problema con algoritmo struttura iterativa PHP 2
D Problema con query in php PHP 5
S Problema con script php-javascript PHP 2
M [PHP] Problema con query PHP 17
C [PHP] Problema con creazione csv PHP 3
B sitoweb responsivo problema con include php HTML e CSS 1
neo996sps PHP/MySQL - Problema con generazione array PHP 14
P problema con codice php... PHP 7
C Problema con html e php :D PHP 1
E php problema incremento e decremento di 2 variabili con click da pulsante PHP 0
G Problema con codice php PHP 1
L xml e php. Problema con i nodi PHP 4
P Problema con file di registrazione in php, non funziona e dà continui errori PHP 0
R problema con pagine php apache su centos 5.3 Apache 1
V problema con mail e php PHP 6
X Problema con php e javascript jQuery 0
IImanuII Problema con php e cache. PHP 6
L [PHP] Problema con il redirect ad un'altra pagina PHP 2

Discussioni simili