- Home
- Categorie
- Coding e Sistemistica
- PHP
- Carrello e variabile per il campo quantità
-
Carrello e variabile per il campo quantità
ciao ragazzi, devo completare un carrello per un e-commerce, ho un db con i prodotti inseriti nel carrello dall' utente, i campi sono id,modello,marca,prezzo, e la query che preleva tutto ciò che è presente nel carrello per dare l'output all'utente dei prodotti inseriti prima di inviare l'ordine è questa:
$query="SELECT id,modello,marca,prezzo,COUNT(id) AS quantità FROM carrello GROUP BY id";
Questa query mi stampa correttamente i prodotti presenti nel carrello e se hanno lo stesso id me li raggruppa in un unico record con GROUP BY id, e il COUNT(id) as quantità mi stampa la quantità di un articolo, quello che non so fare adesso è prendere il valore del campo COUNT(id) as quantità, dovrei prenderlo per inserirlo nel form di invio insieme agli altri campi e inviare l'ordine con i prodotti e la rispettiva quantità, per gli altri faccio così, prendo il valore dei campi presenti nel db con $row=mysql_fetch_row(..), poi con un foreach ($row as $value) e poi print $value, oppure faccio un riepilogo dei campi $id=$row['0'], $modello=$row['1'] ecc... e per il campo quantità che ho creato direttamente con la query che devo fare per creare una variabile e prendere quel numero come faccio con gli altri visto che non è un campo presente nel db? oltretutto dovrei usare questa variabile anche per fare la somma dei prodotti tipo prezzo* quantità. Sono novello in php, sto imparando adesso. grazie a chi mi risponderà. Ciao
-
tipo per esempio $quantita=$row[4]?
-
ciao saro78 :), esatto, vorrei poter utilizzare quel numero per poter calcolare il totale (prezzo per quella quantità) e dare in output il totale e inserire anche quel numero $quantità nella mail che l'utente invierà con l'ordine completo.
A meno che non sia stato io a sbagliare qualcosa,ho già provato in questo modo $quantità=$row['4']; ma non mi stampa nulla dunque ho pensato che la causa fosse la non presenza nella tabella di mysql visto che non sto usando un option select per la quantità, ma è l'utente che cliccando più volte sui prodotti decide la quantità.
In pratica per prelevare i campi faccio questo,$row=mysql_fetch_row($result); //sono tutti nel db id,modello,marca,prezzo
foreach($row as $k => $value)
{
print "<td>$value;
}alla fine di ogni record mi stampa correttamente anche la quantità (non è nel db) di quel determinato prodotto grazie a quel COUNT(id) AS quantità, ma se voglio prendere questo numero quantità per farlo inviare nella mail in modo da sapere quanti pezzi sono stati acquistati per quel prodotto o per fare una semplice moltiplicazione $totale=($prezzo * $quantità) non riesco a prelevare quel numero e utilizzarlo. Non so che fare.
Ciao
-
ma se dopo $row=mysql_fetch_row($result); fai print_r($row) non vedi il valore e la chiave di "quantità"?
se lo vedi la chiave per prenderlo è quella quindi $row['chiavetrovata'] è la tua quantità.
-
...ok saro78, più tardi provo per vedere se si vede la chiave e il valore quantità,
sono convinto anch'io che la chiave per prenderlo quel valore sia quella ma... nada... davvero non capisco :bho:.
ti farò sapere o più tardi o domani, ora sto per chiudere purtroppo. ciao saro78 e grazie
-
ciao saro78, ho fatto print_r($row); e la chiave non mi veniva stampata, per curiosità ho riscritto il file da capo, fatto il print_r($row) e stavolta mi vede sia la chiave che il valore, questa cosa non me la spiego... qualcuno mi ha detto che potrebbe esserci qualche carattere nascosto a compromettere quel frammento di codice. Ho provato anche a debuggare e il codice era (apparentemente) perfetto. Vabè, in ogni modo era giusto quanto mi dicevi, ora riesco a prelevarlo il contenuto della variabile $quantità, un'altra domanda, visto che ora posso recuperare il valore delle variabili della query ho pensato di modificarla in questo modo:
$query="SELECT id,..... COUNT(id) AS quantità,SUM(prezzo) AS Somma_per_questo_prodotto FROM carrello.....";
così mi da correttamente la quantità e la somma per ogni singolo prodotto con stesso id, ora se volessi aggungere nella $query la variabile $totale per il totale generale di tutti i prodotti nel carrello, pensi sia cosa fattibile?
normalmente faccio
$quantità=$row[xx];
$prezzo=$row[xx];$somma=($prezzo*$quantità);
$totale+=$somma;
e con la query si può?
è così che devo fare?:
$query="SELECT id....., (prezzo * quantità) AS totale FROM... ;non ho ancora provato, sto conciliando diversi progetti.
Ciao r