Ciao ragazzi, volevo sapere se era possibile creare un carrello con php...e se è funzionale.
Mi consigliate di meglio?
Ciao ragazzi, volevo sapere se era possibile creare un carrello con php...e se è funzionale.
Mi consigliate di meglio?
Questa è una grande notizia...già mi ero messo con un manuale di Javascript davanti(cmq l'ho trovato interessante e neanche tanto difficile).
Io avevo già in mente un algoritmo per il funzionamento del carrello con php è solo che nel forum tutti usano javascript. Ad esempio(non so come l'hai realizzato tu) ma io pensavo di poggiare su un database in cui riportavo nelle varie caselle di una tabella l'utente, il/i prodotto/i scelti, il prezzo complessivo e varie altre informazioni avendo così tutte le informazioni sempre a portata di mano...
Dici che questo sistema è poco efficiente?
Tu come l'hai realizzato?
Grazie ciao.
Non serve un database, puoi memorizzare i dati in sessione
Il fatto è che ho un casino di sessioni. E poi se hai da conservare anche delle immagini come fai?
Ciao Luca, se puoi dovresti spiegarmi bene l'uso delle sessioni in un carrello.
Io sto realizzando un piccolo algoritmo.
ho dei link:
link n.1 = aggiungi questo prodotto al carrello -> apre la sessione prodotti(se non esiste la crea) e inserisce il nome del prodotto e il prezzo.
Ad esempio
link n.2 = visualizza carrello -> apre una pagina php che ha all'interno ha un for che scorre gli array di sessione creati su, del tipocodice:Codice PHP:
session_start(); $_SESSION['prodotti'][]= prosciutto; $_SESSION['prezzo'][]= 50 Euro;
link n.3 = cancella contenuto del carrello -> cancello l'array di sessione prodotti e prezzo.codice:Codice PHP:
session_start(); echo "Prodotti nel carrello"; for(i=0;i<lenght($_SESSION['prodotti'][]);i++){ echo "$_SESSION['prodotti'][i], $_SESSION['prezzo'][i]"; }
Che ne dici può funzionare così???codice:Codice PHP:
session_start(); $_SESSION['prodotti'] = array(); $_SESSION['prezzo'] = array();
Spero tanto mi risponda a questa domanda...questioni di lavoro!!!
Grazie ciao.
Secondo me c'è un po' di confuzione.
Partiamo dall'uso delle sessioni.
La tecnica che vede le "sessioni utilizzate come db" va benissimo. Solo io migliorerei l'array. Non devi fare niente di che: solo scrivere l'array in questo modo:
$_SESSION['prodotti'][]['prezzo']
$_SESSION['prodotti'][]['id']
$_SESSION['prodotti'][]['nome']
ecc.
In questo modo l'indice ti funziona come un id univoco ed avrai molte meno difficoltà a gestire il resto dei processi
(Per esempio quando dovrai aggiornare le quantità di prodotti).
Invece dell'indice autoincrementato, poi, potresti utilizzare l'id del prodotto (e questo ti renderebbe le cose ancora più facili!).
Per il db secondo me hai fatto un po' di confusione dovuta soprattutto all'inesperienza sul campo.E' solo un'ipotesi.
Se posti il codice del db vediamo se ho ragione e se è così ti aiuteremo a migliorare lo schema del db. Un db normalizzato e ben strutturato è importantissimo ai fini della velocità e dell'usufruibilità.
eCommerceRS.NET - Commerciante, vendi on-line!
Il mio nick è mircov e non mirco!!!
No ho deciso definitivamente di usare le sessioni, senza database.
Allora facciamo il punto:
nel modo in cui mi hai indicato tu,
$_SESSION['prodotti'][]['prezzo']
$_SESSION['prodotti'][]['id']
$_SESSION['prodotti'][]['nome']
in realtà userei un solo array di sessione. Giusto?
Ora, se io voglio scorrere il contenuto dell'array come faccio?Così?
Scusami ma mi sa che il mio problema è teorico, quest'array che tu mi hai riportato ha tre dimensioni giusto?codice:Codice PHP:
for(i=0;lenght($_SESSION['prodotti'][]);i++) echo "$_SESSION['prodotti'][i]['prezzo'],$_SESSION['prodotti'][i]['id'], $_SESSION['prodotti'][i]['nome']";
Quindi
prodotti -> 1 -> 1 prezzo
prodotti -> 1 -> 2 id
prodotti -> 1 -> 3 nome
prodotti -> 2 -> 1 prezzo
prodotti -> 2 -> 2 id
prodotti -> 2 -> 3 nome
prodotti -> .. -> 1 prezzo
prodotti -> .. -> 2 id
prodotti -> .. -> 3 nome
prodotti -> i -> 1 prezzo
prodotti -> i -> 2 id
prodotti -> i -> 3 nome
Giusto?
Si, quasi perfetto.
Allora fai in questo modo: decidiamo, per prima cosa, che invece dell'indice autoincrementato utilizziamo l'id del prodotto (ci renderà molte operazioni successive più semplici).
L'array, quindi, sarà di questo tipo
Abbiamo il nostro bell'array.Codice PHP:
$_SESSION['cart'][1234]['nome'] = 'prosciutto' ;
$_SESSION['cart'][1234]['prezzo'] = '34.98' ;
$_SESSION['cart'][1234]['quantita'] = 1 ;
$_SESSION['cart'][1234]['nome'] = 'salame' ;
$_SESSION['cart'][1234]['prezzo'] = '10.00' ;
$_SESSION['cart'][1234]['quantita'] = 5 ;
$_SESSION['cart'][1234]['nome'] = 'pancetta' ;
$_SESSION['cart'][1234]['prezzo'] = '20.00' ;
$_SESSION['cart'][1234]['quantita'] = 2 ;
A questo punto un po' di teoria.
Per scorrere un array non va bene usare il for (cioè va bene nel senso che funziona ma non è il modo corretto di operare). Bisogna usare il foreach
http://fr.php.net/manual/it/control-...es.foreach.php
Per scorrere l'array, quindi, scriverai un codice come questo:
Ed ecco la lista delle proprietà del prodotto inserito nel carrello.Codice PHP:
foreach ( $_SESSION['cart'] as $key )
{
// Ho ottenuto l'id dell'array e, quindi,
// l'id del prodotto
echo 'Nome: ' . $_SESSION['cart'][$key']['nome'] . '
'
. 'Prezzo: ' . $_SESSION['cart'][$key']['prezzo'] . '
'
. 'Quantità: ' . $_SESSION['cart'][$key']['quantita'] . '
'
. 'ID: ' $key . '
' ;
}
NOTA
Invece di usare echo successivi ho usato il punto come potrai notare.
Questo perchè ogni echo comporta un dialogo tra server e client (per mandare i pacchetti di dati ed instaurazine della relativa connessione, ecc.) che si traduce in un allungamento dei tempi di attesa (in questo caso minimi ma su grandi applicazioni anche di due o tre o addirittura quattro secondi).
Il punto "." invece permettere di concatenare una stringa e di utilizzare, quindi, un'unica echo.
Ancora, non ho usato i "" ma ho usato il . perchè quando si usano i doppi apici il php vi cerca all'interno delle vars e questo comporta sempre un aumento dei tempi. Usando l'apice singolo, il concatenamento con il . e un'unica echo, invece, abbiamo abbattutto molto i tempi di attesa.
eCommerceRS.NET - Commerciante, vendi on-line!
Il mio nick è mircov e non mirco!!!
Mi è quasi tutto chiaro, tranne qualche piccolo dettaglio.
intanto grazie della spiegazione del concatenamento con l'operatore punto. C'è da aggiungere che non sono praticol nell'uso del punto. Cmq proverò, sembra ne valga la pena.
Ora io mi domandavo
quando faccio echo ' bla bla' posso inserire un intero codice html?Codice PHP:
foreach ( $_SESSION['cart'] as $key )
{
// Ho ottenuto l'id dell'array e, quindi,
// l'id del prodotto
echo 'Nome: ' . $_SESSION['cart'][$key']['nome'] . '
'
. 'Prezzo: ' . $_SESSION['cart'][$key']['prezzo'] . '
'
. 'Quantità: ' . $_SESSION['cart'][$key']['quantita'] . '
'
. 'ID: ' $key . '
' ;
}
La questione è questa: devo creare, dopo aver pescato i dati dalla sessione, una pagina html con misure personalizzate e che contiene, oltre all'elenco dei prodotti, anche del codice javascript con determinate funzioni. E' possibile? O troppo complesso?