- Home
- Categorie
- Coding e Sistemistica
- PHP
- Sommare articoli
-
Sommare articoli
Ciao A tutti,
come posso eseguire una query dove va a sommarmi le quantità articolo per articolo, in poche parole le quantità presenti in magazzino.
Grazie
-
Vuoi eseguire una query dove? potresti almeno dirci il nome della tabella o dei campi, comunque ti faccio un esempio di query mysqli ad oggetti per il conteggio dei prodotti su una tabella fittizia.
[PHP]
$query = $mysqli->query("SELECT quantita from prodotti");$quantita = 0;
while($row = $query->fetch_row()){
$quantita = $quantita + $row[0];
}
echo $quantita;
[/PHP]Questo nel caso in cui tu abbia una tabella di nome prodotti con un campo quantita che specifica la quantità presente per quell'articolo, facendo in questo modo vai sommando tramite un ciclo tutte le quantita presenti per tutti gli articoli registrati nel DB.
Questa è la logica dello script che dovrai fare, il metodo devi vederlo tu.
-
Si scusa è vero....
Io ho una tabella che si chiama articoli,
dentro ho le seguenti voci
Codice
quantita
articolo
A questo punto viene cosi?$query = $mysqli->query("SELECT quantita from articoli");
$quantita = 0;
while($row = $query->fetch_row()){
$quantita = $quantita + $row[0];
}
echo $quantita;
Pero da errore;
Parse error: syntax error, unexpected '$query' (T_VARIABLE) riga 20
La riga 20 è
$query = $mysqli->query("SELECT quantita from articolo");
-
Il mio non era un esempio di codice applicabile al tuo in quanto al 99% utilizzi una stringa o un metodo di connessione diverso da quello che ti ho portato come esempio.
Ti metto il codice completo per far funzionare il mio, compreso di connessione al DB.
[PHP]
<?php// connessione a MySQL con l'estensione MySQLi
$mysqli = new mysqli("localhost", "username", "password", "miodb");// verifica dell'avvenuta connessione
if (mysqli_connect_errno()) {
// notifica in caso di errore
echo "Errore in connessione al DBMS: ".mysqli_connect_error(); // interruzione delle esecuzioni i caso di errore
exit();
}$query = $mysqli->query("SELECT quantita from prodotti");
$quantita = 0;
while($row = $query->fetch_row()){
$quantita = $quantita + $row[0];
}
echo $quantita;
?>
[/PHP]Adesso sostituisci i parametri con i tuoi e ti dovrebbe andare.
-
Ok, funziona!
Ma mi somma tutti gli articoli assieme,
io vorrei che mi sommi articolo per articolocioè se io ho inserito 20 volte l'articolo computer deve ritornarmi una riga sola con
nr. 20 computer
-
Certo che funziona
Allora puoi fare in questa maniera:
[PHP]
<?php// connessione a MySQL con l'estensione MySQLi
$mysqli = new mysqli("localhost", "username", "password", "miodb");// verifica dell'avvenuta connessione
if (mysqli_connect_errno()) {
// notifica in caso di errore
echo "Errore in connessione al DBMS: ".mysqli_connect_error(); // interruzione delle esecuzioni i caso di errore
exit();
}$query = $mysqli->query("SELECT articolo,quantita from articoli");
while($row = $query->fetch_row()){
echo 'Sono presenti n. '.$row[1].' per l'articolo: <b>'.$row[0].'</b></br>';
}
?>
[/PHP]
Enjoy
-
Funziona cosi;
Sono presenti n. 1 per articolo: Computer
Sono presenti n. 1 per articolo: Computer
Sono presenti n. 100 per articolo: Canalina bianca Bocc
Sono presenti n. 100 per articolo: Canalina bianca Bocc
Sono presenti n. 100 per articolo: **canalinaIo però vorrei che il risultato fosse:
**Sono presenti n. 2 per articolo: Computer
Sono presenti n. 200 per articolo: Canalina bianca Bocc
Sono presenti n. 100 per articolo: canalina
è possibile?
-
Ciao,
prova a guardare qui: http://www.tizag.com/mysqlTutorial/mysqlsum.php
-
OK, ho fatto cosi;
<?php
// Richiamiamo il file delle connessioni
require_once('Connessioni/mysqlconn.php');// seleziono il database mysql_select_db($database, $corso); // impostiamo una variabile per il successo $bSuccesso = true;
// Make a MySQL Connection
$query = "SELECT codice, SUM(quantita) FROM articolo GROUP BY codice";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){echo "Total ". $row['codice']. " = Nr.". $row['SUM(quantita)']; echo "<br />";
}
?>
E funziona mi restituisce:
Total bbret = Nr.2
Total LEX40X5451 = Nr.0
Total OS0330 = Nr.0
Total reca011 = Nr.200
Total Reca023 = Nr.100
Vorrei aggiungere anche articolo e prezzo, ma non ci riesco.
Mi potete aiutare.
Grazie
-
SELECT codice, SUM(quantita) FROM articolo GROUP BY codice
diventa qualcosa tipo:
SELECT codice, SUM(quantita), articolo.nome, prezzo FROM articolo GROUP BY codice
Inoltre ti consiglierei di usare l'AS per il SUM. In pratica scrivendo nella query SUM(quantita) AS somma.
In questo modo in PHP puoi leggerlo con $row['somma']Fammi sapere come va.
-
Ok ,
ma sulla parte print come faccio;
// Print out result
while($row = mysql_fetch_array($result)){echo "Total ". $row['codice']. " = Nr.". $row['SUM(quantita)']; echo "<br />";
-
echo "Total ". $row['codice']. " = Nr.". $row['somma'];
-
Perdonami ma sono agli inizi....
Ho fatto cosi,
<?php
// Richiamiamo il file delle connessioni
require_once('Connessioni/mysqlconn.php');// seleziono il database mysql_select_db($database, $corso); // impostiamo una variabile per il successo $bSuccesso = true;
// Make a MySQL Connection
$query = "SELECT codice, SUM(quantita), articolo, prezzo FROM articolo GROUP BY codice";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){echo "Total ". $row['codice']. " = Nr.". $row['somma']; echo "<br />";
}
?>
Ma da errore;
Notice: Undefined index: somma in D:\XAMPP\htdocs\Magazzini\InventarioArticoli.php on line 27
Total Reca023 = Nr.La line 27 è :
echo "Total ". $row['codice']. " = Nr.". $row['somma'];
-
Ho fatto cosi e funziona.....
echo "Total ". $row['codice']. " = Nr.". $row['SUM(quantita)'];
echo "Total ". $row['prezzo']. " = Nr.". $row['articolo'];
-
Devi modificare anche la query usando l'AS:
$query = "SELECT codice, SUM(quantita) AS somma, articolo, prezzo FROM articolo GROUP BY codice";
-
ok, fatto.
Gia che ci siamo, se volessi inserire i risultati in celle tipo excel cosi è più bellino.
Potresti indicarmi come fare.
Grazie30000
-
"tipo excel" che intendi?
Graficamente simile a excel ma pur sempre una pagina web o vorresti fare proprio un'esportazione in excel?
-
Graficamente simile a excel ma pur sempre una pagina web.
-
Allora ti serve studiare i css ed imparare a modificarli per avere la resa grafica che vuoi ottenere.
Non so se esiste qualcosa di già pronto. Prova a cercare.
-
Ciao
qua trovi alcuni stili css per tabelle, prova a guardare se qualcuno fa al caso tuo