Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [php+sql] Info su struttura db per carrello e-commerce

    Ciao ragazzi.
    Dovrei realizzare un semplice pagina simile a quei carrelli online di e-commerce dove l'utente fa una ricerca sul db, sceglie l'articolo e infine va alla cassa.
    Per quanto riguarda il db articoli e le ricerche è già tutto pronto.

    Vorrei qualche consiglio su come strutturare la tabella temporanea degli articoli che l'utente ha scelto.
    Prima cosa: mi conviene utilizzare un tabella temporanea ordine per ordine?
    Di solito come vengono gestite queste cose?

    A me interesserebbe che l'utente possa aggiungere/rimuovere articoli dal suo carrello e, una volta confermato l'ordine, possa rimanere una traccia di ciò che è stato evaso.

    Ovviamente ho vari utenti connessi al sito, quindi è facile che contemporaneamente ci siano più carrelli aperti.
    Ho provato a cercare sul sito ma non ho trovato molto.. mi accontento anche di qualche guida o link dove studiare un attimo il flusso di lavoro che generalmente si usa in questi casi.

    Qualcuno mi può aiutare? Grazie ciao.

  2. #2
    Ciao, quando avevo fatto lavoretti simili avevo utilizzato 2 diverse metodologie, ciascuna coi suoi pro e contro, ma usabili entrambe:

    1. usa una variabile di sessione per salvarti la quantità e il codice dei prodotti scelti, così l'utente se li porta dietro senza lasciare nulla sul tuo db che resta più leggero

    2. usi una tabella in cui segni quantità, prodotto e utente, dove poi, una volta fatto l'ordine, puoi cancellare le righe relative a quell'utente oppure avere un campo aggiuntivo "carrello o acquistato", così da tenere anche traccia dei vecchi carrelli dell'utente

    spero di esserti stato d'aiuto

  3. #3
    grazie intanto per la risposta.
    non male la seconda struttura.. preferirei la tabella così non riempio le var in sessione che ne ho già tante.
    giustamente col flag posso gestirmi l'ordine aperto/chiuso.

    una domanda: meglio fare una tabella unica per tutti gli utenti?
    così magari in base alla data di evasione potrei cancellare i record più vecchi di una certa data in modo da non allungarla a dismisura..

    pensavo inoltre che dovrei gestire un id di richiesta (che potrei utilizzare quello di sessione) in modo da identificare unicamente l'ordine.
    giusto?

    grazie

  4. #4
    Originariamente inviato da davidino80
    una domanda: meglio fare una tabella unica per tutti gli utenti?
    così magari in base alla data di evasione potrei cancellare i record più vecchi di una certa data in modo da non allungarla a dismisura..
    Beh, questo sì, una tabella unica è la soluzione migliore, altrimenti per ogni utente iscritto dovresti generare una nuova tabella e...immagina il bordello a doverle gestire?
    Poi infatti, una tabella unica ti permette di avere sott'occhio lo stato degli ordini per periodi, per ore, per prodotti... hai un sacco di informazioni così!
    E stai tranquillo se diventa "lunga"... i database nascono per gestire tabelle enormi, arrivare a cancellare i report vuol dire essere migliardario vendendo on-line!

    Originariamente inviato da davidino80
    pensavo inoltre che dovrei gestire un id di richiesta (che potrei utilizzare quello di sessione) in modo da identificare unicamente l'ordine.
    giusto?
    Beh sì, ti conviene dargli un id al carrello, almeno anche nello storico puoi risalire a quale ordine fatto quando con quali prodotti...

  5. #5
    vero, grazie per la risposta.
    in caso se ho altri dubbi chiedo.

    ciao e auguri

  6. #6
    funziona tutto ok.. solo una cortesia.
    dopo la ricerca del codice, nell'esempio "4325", si apre una tabella come la seguente:



    la tabella è racchiusa da un form con action in post che punta al file che memorizza sul db.
    le singole quantità sono input con nome "qta".
    l'immagine del carrello è un input con type immagine che da il submit passando il codice

    se nella pagina successiva prendo il valore di "qta", mi trovo il valore corretto solo se il risultato è uno solo, mentre se sono di più il record viene salvato lo stesso, ma con qta a zero e con un avviso, del tipo che esistono più valori di qta..

    come posso differenziare gli input salvando il corretto valore della riga selezionata?
    mi sono spiegato?

    grazie ciao.

  7. #7
    <label for="f_qta">qta</label>
    <input type="text" id="f_qta" name=f_qta[] >

    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  8. #8
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    scusate se mi intrometto...

    Io ho creato una tabella per il carrello solo che non riesco a capire come fare "INSERT INTO" tramite link...

    MI spiego meglio...ho fatto un piccolo catalogo online e ho scelto il metodo "tabella db" per gestire i carrelli solo che non ho capito nel link "Aggiungi al carrello" che devo mettere per ottenere l'inserimento....

    Devo creare una funzione e rikiamarla?!?

  9. #9
    spero di aver capito bene...

    tu avrai una pagina dove hai la lista degli "articoli".. giusto? (dove l'utente può scegliere cosa mettere nel carrello)

    successivamente tramite un tasto "aggiungi a carrello" passerai ad un nuova funzione che fa l"INSERT INTO" con i dati raccolti.. quindi codice, quantità.. ecc

    per passare i dati da una pagina all'altra devi usare un form ovviamente..

    ho capito bene?

  10. #10
    scusate sono ancora alle prese col carrello.
    avevo fatto un sistema simile per passare i diversi valori di "qta" ma mi sono accorto che funzionava solo per Firefox! (no I.Explorer )

    vorrei riprendere l'esempio postatomi da daweb:

    <label for="f_qta">qta</label>
    <input type="text" id="f_qta" name=f_qta[] >
    immagino che dentro alle parentesi quadre "f_qta[]" devo mettere qualche valore giusto?
    e cosa? mi potete fare un esempio più completo?

    così mi dice che il nome "f_qta[]" è già utilizzato.

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.