Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: Menu ristorante

  1. #1

    Menu ristorante

    Ciao ragazzi, un ristorante mi ha chiesto un sito con una cosa che non ho mai fatto cioè, il ristorante mi a dato il suo menù formato in questo modo

    Pizza

    - margherita
    - Prosciutto
    - eccc

    Bibite

    - birra
    - caffè
    - ecc..

    Panini

    - con prosciutto
    - con formaggio
    - ecc..

    (I nomi li ho messi a caso)

    Poi all'interno del sito ha diverse categorie appunto Pizza, Bibite, panini, ecc.. lui vorrebbe che in base alla categoria scelta (per esempio panini), qnd uno apre la pagina si trova in cima al menù la lista dei panini disponibili, invece se uno clicca su pizza si trova la lista della pizza.
    Come posso fare una cosa del genere?? Non posso dividere il menù ma devo lasciarlo così com'è in un'unico campo del database..

    Ciaoo

  2. #2
    Come è la struttura del database che non ho capito?

  3. #3
    dovresti strutturare il db in base alle categorie secondo me..e poi fai delle semplicissime query che ti estraggono solo gli elementi di tale categoria...

    Fai una tabella per:

    pizze
    panini
    bevande


    all'interno della tabella pizza i record saranno

    margherita
    marinara
    capricciosa




    e via discorrendo

  4. #4
    Io per limitare il numero di tabelle farei nel seguente modo:

    Tabella tipi con due colonne:

    1) Id_tipo (campo univoco)

    2) tipologia

    Un esempio di record sarà: Id_tipo=1 tipologia=pizza, Id_tipo=2 tipologia=panino ecc ecc

    Tabella cibo con tre colonne:

    1)Id (campo auto_increment univoco).

    2)Nome del cibo.

    3)Id_tipo di riferimento.

    Un esempio di record sarà: Id=1 Nome=margherita Id_tipo=1, Id=2 Nome=capricciosa Id_tipo=1, Id=3 Nome=panino salame Id_tipo=2.

    Quando fai la query di ricerca basta che vai nella tabella CIBO e metti come clausola WHERE Id-Tipo a seconda di ciò che vuoi estrarre.

  5. #5
    Si effettivamente dopo che avevo risposto avevo pensato proprio alla stessa cosa...
    E' proprio gestito meglio...
    OTTIMO

  6. #6
    Si solo che non sono molto esperto con le inner join stò avendo un'pò di difficolta

    Ciao

  7. #7
    Ciao, non posso adottare quella tecnica, quindi vi spiego meglio il mio problema

    io ho un db creato in questo modo

    2 tabelle

    menu
    id, id_locale, menu

    locale
    id,nome,ecc..

    Vi faccio un esempio

    menu
    id,id_locale,menu
    1,1,menu del locale
    2,5,menu del locale

    invece nella tabella locale sono messo così
    locale
    id,nome,ecc..
    1,Pizzeria da gianni,ecc..
    5,Paninoteca marco

    P.S. I nomi delle varie cose sono indicativi quelle delle tabelle no.

    Adesso io estraggo i dati della pizzeria ed infine estraggo il menù, però come vi dicevo prima il sito da la possibilità di scegliere cosa mangiare, quindi se seleziono carne dal menù cose da mangiare in menù del locale dovrebbe cominciare con i prodotti della categoria carne


    Il menù è strutturano in questo modo

    Pizza

    - margherita
    - Prosciutto
    - eccc

    Bibite

    - birra
    - caffè
    - ecc..

    Panini

    - con prosciutto
    - con formaggio
    - ecc..

    Non esiste nessun modo??

    Se no mettere all'inizio di ogni categoria un tag e poi dividere il tutto in un array ed in base alla cosa che scelgo questo si posiziona in prima fila.. E' fatibile??

    Ciao

  8. #8
    il modo c'è e te lo spiego ma secondo me devi strutturare il db nel modo in cui aveva descritto matteo perchè così non è NORMALIZZATO per niente bene... Comunque sulla struttura che tu hai creato devi fare una cosa:

    nella tabella "menu"

    dove tu hai fatto questa struttura

    id,id_locale,menu
    1,1,menu del locale
    2,5,menu del locale

    dove immagino che i record saranno:

    1,1,margherita
    1,1,capricciosa
    1,1,panino uovo e salame
    2,5,margherita


    devi aggiungere un campo "tipologia" dove metterai l'identificativo della pietanza

    quindi

    id,id_locale,menu,tipologia

    i quali record saranno

    1,1,margherita,pizza
    1,1,capricciosa,pizza
    1,1,panino uovo e salame,panino
    2,5,margherita,pizza


    che puoi fare con un campo tinyint(2) assegnandoti mentalmente quindi un numero per ogni tipologia di prodotto nel senso

    1=pizza
    2=panini
    3=bevande
    4=................
    ecc

    oppure proprio con un campo testo

    quindi nelle query se vuoi estrarre solo le pizze basta che nella WHERE metti

    WHERE tipologia=1 se vuoi estrarre solo le pizze
    oppure
    WHERE tipologia LIKE 'pizza'
    insomma così via...


    Comunque guarda io quando ero agli inizi cercavo sempre e solo il modo più veloce di fare le cose anche se mi venivano contorte,però mi riuscivano ma non è il modo giusto...Pian piano informandomi,chiedendo e sbattendoci la testa non mi muovevo da una cosa se non la facevo precisa e cosi mi sono imparato tante tante cose e a distanza di tempo se devi fare delle modifiche le fai senza problemi..Siamo quì per aiutarti e per essere aiutati quindi se hai bisogno di inner join o cose varie posta la tua domanda e vedrai che qualcuno ti aiuterà...


  9. #9
    Si meglio di tutto adesso provo appena finisco ti avviso

  10. #10
    Eccomi un po' in ritardo.

    Quoto la soluzione descritta sopra. Per quanto riguarda la NORMALIZZAZIONE del database ti conviene studiarla in maniera approfondita perchè è una delle cose più importanti nella progettazione di un sito. Un sito che si appoggia ad un database normalizzato, progettato a modo è un ottimo sito in quanto con la normalizzazione evita anomalie di inserimento, cancellazione, aggiornamento ed evita sensibilmente gli accessi al database in caso volessi aggiornare qualche record.

    Se fai una ricerca su google sulla normalizzazione trovi tonnellate di materiale

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 © 2024 vBulletin Solutions, Inc. All rights reserved.