• User

    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 :ciauz:


  • Bannato User Attivo

    tipo per esempio $quantita=$row[4]?


  • User

    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 :ciauz:


  • Bannato User Attivo

    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à.


  • User

    ...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


  • User

    ciao saro78, ho fatto print_r($row); e la chiave non mi veniva stampata, per curiosità ho riscritto il file da capo, :mmm: 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 :ciauz: