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

    creare un menu verticale dinamico

    Ciao a tutti sto facendo un sito dinamico di vendita ricambi, volevo creare un menu ad albero prendendo i dati dalla tabella prodotti_vendita
    Il problema e che per ogni prodotto devo creare la tipologia e non la so a priori per essere pio chiaro devo fare così
    menu - tipologia-
    sottomenu -ricambio-
    manu -tipologia-
    sottomeni -ricambio-
    sottomenu -ricambio-
    sottomenu -ricambio-
    menu -tipologia-
    sottomeni -ricambio-
    sottomenu -ricambio-
    sottomenu -ricambio-

    ecc. fino a quando la tipologia finisce, pero non riesco a apire se devo creare due tabelle o se riesco a fere il tutto con una sola tabella che vi posto:

    • CREATE TABLE IF NOT EXISTS `prodotto_vendita` (
      `id_prodotto` int(10) unsigned NOT NULL auto_increment,
      `cod_prodotto` varchar(100) NOT NULL,
      `tipologia` varchar(100) NOT NULL,
      `prodotto` varchar(100) NOT NULL,
      `quantita` varchar(100) NOT NULL,
      `prezzo` float NOT NULL,
      `listino` float NOT NULL,
      `anteprimaDescrizione` varchar(255) NOT NULL,
      `descrizione` text NOT NULL,
      `marca` varchar(100) NOT NULL,
      `cod_originale` varchar(100) NOT NULL,
      `data` timestamp NOT NULL default CURRENT_TIMESTAMP,
      `foto0` varchar(150) NOT NULL,
      `tumb0` varchar(150) default NULL,
      PRIMARY KEY (`id_prodotto`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=59 ;

  2. #2

    Re: creare un menu verticale dinamico

    Originariamente inviato da fuorigiri
    Ciao a tutti sto facendo un sito dinamico di vendita ricambi, volevo creare un menu ad albero prendendo i dati dalla tabella prodotti_vendita
    Il problema e che per ogni prodotto devo creare la tipologia e non la so a priori per essere pio chiaro devo fare così
    menu - tipologia-
    sottomenu -ricambio-
    manu -tipologia-
    sottomeni -ricambio-
    sottomenu -ricambio-
    sottomenu -ricambio-
    menu -tipologia-
    sottomeni -ricambio-
    sottomenu -ricambio-
    sottomenu -ricambio-

    ecc. fino a quando la tipologia finisce, pero non riesco a apire se devo creare due tabelle o se riesco a fere il tutto con una sola tabella che vi posto:

    • CREATE TABLE IF NOT EXISTS `prodotto_vendita` (
      `id_prodotto` int(10) unsigned NOT NULL auto_increment,
      `cod_prodotto` varchar(100) NOT NULL,
      `tipologia` varchar(100) NOT NULL,
      `prodotto` varchar(100) NOT NULL,
      `quantita` varchar(100) NOT NULL,
      `prezzo` float NOT NULL,
      `listino` float NOT NULL,
      `anteprimaDescrizione` varchar(255) NOT NULL,
      `descrizione` text NOT NULL,
      `marca` varchar(100) NOT NULL,
      `cod_originale` varchar(100) NOT NULL,
      `data` timestamp NOT NULL default CURRENT_TIMESTAMP,
      `foto0` varchar(150) NOT NULL,
      `tumb0` varchar(150) default NULL,
      PRIMARY KEY (`id_prodotto`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=59 ;
    Non sono stato chiaro o nessuno riesce ad aiutarmi, per molti potrebbe sembrare una domanda banale ,ma per me e molto difficile e siccome non ho trovato nente nel web chiedo a voi
    grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Allora,
    se ho capito bene vuoi un menu del genere

    Prodotto A
    -- ricambio 01
    -- ricambio 02
    -- ricambio 03

    Prodotto B
    -- ricambio 04
    -- ricambio 05

    ett..

    Se e' cosi'
    Allora, io strutturerei i dati su due tabelle, ma anche su una va bene lo stesso.

    Quindi
    Anagrafica_Prodotti
    codi_prodotto (autoincrement)
    desc_prodotto
    e gli altri campi (che pero' non sono influenzati per definire il menu)

    Anagrafica_Ricambi
    codi_ricambio (autoincrement)
    codi_prodotto (in FK con la tabella dei Anagrafica_Prodotti)
    desc_ricambio
    Gli altri campi (come sopra)

    --- Crea la FK sul campo codi_prodotto ---

    Poi, farei un cursore (ciclo) su una select del tipo

    select a.codi_ricambio,
    a.desc_ricambio,
    b.codi_prodotto,
    b.desc_prodotto
    from anagrafica_ricambi a,
    anagrafica_prodotti b
    where a.codi_prodotto=b.codi_prodotto
    order by prodotto

    (non servono altre condizioni e l'ordinamento e' opzionale)

    Nel codice controllerei che quando cambia il codi_prodotto, "apro" un nuovo menu', appoggiandomi ad una variabile temporanea per il confronto con il codi_prodotto attuale.
    Chiaramente la dichiaro nulla.

    Una cosa del tipo

    var temporanea=' ';

    -- cursore --
    -- if (codi_prodotto <> temporanea)
    temporanea = codi_prodotto
    scrivo la riga del prodotto
    scrivo la riga del ricambio
    -- else
    -- // caso in cui sia uguale
    scrivo la riga del ricambio
    -- chiudo if
    chiaramente ci sono altri modi per farlo, ma (se la stanchezza non fa brutti scherzi oggi) questo dovrebbe essere sufficiente.

    ciao

    Edit: cambiato la FK... la stanchezza

  4. #4
    Ciao,

    come da regolament, è FONDAMENTALE ed OBBLIGATORIO specificare il nome del database utilizzato. Ora, chi lo conosce mysql capisce subito dal tipo di query postata (mi riferisco a ENGINE=MyISAM) che si parla, per l'appunto, di mysql ... però continua a rimanere FONDAMENTALE ed OBBLIGATORIO inserire il nome del database.

    Per questa volta sistemo io, fai più attenzione per i prossimi thread gentilmente.
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    ciao, scusatemi tutti se non ho ringraziato per la risposta che mi avere consigliato, ho avuto problemi
    io ho risolto in parte la questione usando un ciclo while annidato, in parte perchè? la tipologia cicla in modo corretto che e il ciclo esterno, mentre quello interno cicla solo una volta molto probabilmente spaglio qualche cosa ma non so come fare

  6. #6
    ciao, scusatemi tutti se non ho ringraziato per la risposta che mi avere consigliato, ho avuto problemi
    io ho risolto in parte la questione usando un ciclo while annidato, in parte perchè? la tipologia cicla in modo corretta che è il ciclo esterno, mentre quello interno cicla solo una volta molto probabilmente sbaglio qualche cosa ma non so come fare

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.