Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Aiuto: Realizzazione Menu verticale con Php/MySQL...

    Salve,
    Premetto:
    - Sto cercando aiuto nella realizzazione di un "menu verticale" da scrivere in PHP che estragga codici da un database MySQL.
    - Cercherò di essere più chiaro possibile e spiegarmi nel miglior modo.
    - Voglio iniziare da 0 in modo da capire bene la teoria e metterla in pratica ogni qualvolta mi versa.
    - "Php/MySQL nel titolo non significa che non dobbiamo usare CSS e/o Javascript ecc...".

    Arriva la domanda:
    Voglio creare questo menu, cioè Verticale Drop Down (voglio che quando clicco sulla categoria compaia sotto una sotto-categoria)

    MySQL?
    Voglio collegare il menu ad un database, cioè questo menu deve generarsi tramite un database creato appositamente.



    Es.: Creo un database di questo genere:
    Targa(univoco):__________Marca:_______________Mode llo:______________Tipo:
    GE511XR_______________Audi_________________A3_____ ______________Automobili
    F56E__________________Honda_______________CBR600RR ____________Motociclette

    ed il menu che voglio si realizzi sia più o meno: (il cambio di tipo di parentesi indica una sotto-categoria)

    [Automobili]
    ________(Audi)
    [Motociclette]
    ________(Honda)

    "Automobili" e "Motociclette" sono le categorie prese dal db nel campo "Tipo", "Audi" e "Honda" invece le sotto-categorie prese dal campo "Marca"...



    Ho cercato di esser più chiaro possibile nel spiegarmi, se non lo fossi stato scrivetelo e provvederò... Sperò qualcuno sia disposto ad aiutarmi
    Grazie
    codice:
    Targa(univoco): Marca: Modello: Tipo: GE511XR Audi A3 Automobili F56E Honda CBR600RR Motociclette

  2. #2
    Allora .... per fare una cosa del genere in maniera corretta devi creare due tabelle del db.

    Prima tabella categorie:
    ID | NOME

    Seconda tabella sottocategorie:
    Targa | Marca | Modello | Tipo (questo campo deve avere l'id della cat. a cui appartiene e non il nome in caratteri)

    Per quanto riguarda il codice in metodo che secondo me potresti usare può' essere:

    recuperare con una query tutti i dati dalla tabella categorie ed inserirli in un array, fare un foreach dell'array e nell'iterazione del ciclo lanciare una query sulla tabella sottocategorie che ti recuperi tutti i dati appartenenti alla categoria che stai scorrendo:


    Codice PHP:
    foreach( $arraycategorie as $a){

        
    // qui stamperai il nome della categorie
        
    foreach ($arraycategorie as $ac) {
        
    /* Qui lancerai la query che ti 
        recupera le sottocategorie relative alla categoria che stai 
        analizzando e le stamperai a video */
        
    }
        


  3. #3
    Quindi per quanto riguarda il database procedo cosi:

    codice:
    CREATE DATABASE PROVA;
    
    USE PROVA;
    
    CREATE TABLE categoria(
    ID INT(3) UNSIGNED not
    null AUTO_INCREMENT,
    Nome VARCHAR(20),
    PRIMARY KEY (ID)
    );
    
    CREATE TABLE sottocategorie(
    Targa CHAR(7),
    Marca VARCHAR(15),
    Modello VARCHAR(20),
    Tipo INT(3), /* #### Qui non sapevo cosa mettere #### */
    PRIMARY KEY (Tipo) /* #### Qui ho tirato ad indovinare quale dovevo mettere come chiave primaria #### */
    );
    Ho fatto qualche errore?
    Ora come devo proseguire?

  4. #4
    Devi studiarti ben ben come si costruiscono database relazionali altrimenti non puoi proseguire e rischieresti da fare tanti sforzi per pessimi risultati.

    Il PRIMARY KEY non và messo a casaccio... e il campo "tipo" INT si può solo presumere che sia relazionato a qualche altra tabella...

    In pratica: il database è costruito concettuakmente male. Andando ad intuito su ciò che stai realizzando ti suggerireri di strutturarlo in questo modo:
    - una tabella per le marche (con almento due campi Id int auto increment e nome_marca - varchair);
    - una tabella modelli relazionata con la precedente (con almento tre campi Id int auto increment, id_marca int che crea la relazione con la tabella precedente, e nome_modello - varchair);
    - una tabella categorie (va bene quella che hai);
    - la tabella veicoli con almeno 4 campi (il solito id int auto increment, id_modello relazionato alla tabella modelli, id_categoria relazionato alla tabella categorie, e ppi quel che ti serve... ad es. targa, km, etc etc.)
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5
    Questo si può dire che è il mio primo lavoro in SQL quindi sono completamente inesperto, per questo ho chiesto aiuto in questo Forum...

    Da inesperto chiedo:
    È possibile creare una sola tabella e tramite PHP fare una condizione??

    Struttura della Tabella:
    ID (obbligatorio, univoco)
    (numero identificativo per la categoria, cioè univoco)

    Marca (obbligatorio)
    (nome da dare alla voce del menu)

    Modello
    (nome da dare alle sottocategorie)


    Condizione (for):
    In termini NON TECNICI la condizione che avevo in mente era
    Per ogni ID inserisci <ul>"estrai Marca da database"[/list]
    per ogni Marca inserisci[*]"estrai Modello da database"


    Mi sono spiegato da schifo ma spero d'aver reso l'idea di ciò che ho in mente


    P.S: Non dobbiamo utilizzare obbligatoriamente questi CAMPI, questo è solo un esempio (quindi non sono obbligato ad usare il campo targa ecc... se non serve)
    L'importante per me è capire come creare questo tipo di menu

  6. #6
    Aaaaallora... si può fare anche questo ma non è concettualmente corretto.
    Devi estrarre tutti i record e costruire un array multidimensionale dinamicamente con questa struttura:
    Codice PHP:
    <?php
    $array_da_costruire 
    = array(
        
    'alfa' => array(
                    
    => array(
                        
    'modello' => '157'
                        
    ),
                    
    => array(
                        
    'modello' => '155'
                        
    )
                    ),
        
    'audi' => array(
                    
    => array(
                        
    'modello' => 'A3'
                        
    ),
                    
    => array(
                        
    'modello' => 'TT'
                        
    ),
                    
    => array(
                        
    'modello' => 'A6'
                        
    )
            ),
        
    'fiat' => array(
                    
    => array(
                        
    'modello' => 'Punto'
                        
    )
                    )
        );
    Dopodichè gestire il tutto tramite cicli foreach.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  7. #7
    Mi potresti aiutare a realizzare, anche facendo un menu di solo due righe cosi da farmi capire il tutto??
    PS: Nel post sovrastate ho sbagliato a dire che l'ID univoco va usato per creare la categoria in quanto non è permesso avere due ID uguali, però possiamo ovviare a questo con un campo "ID_categoria"

  8. #8
    Originariamente inviato da shuttle15
    Mi potresti aiutare a realizzare, anche facendo un menu di solo due righe cosi da farmi capire il tutto??
    Non è una questione di righe del menù:al di là della grandezza del menu (che dipenderà dai record presenti nella tabella) il codice è lo stesso.

    inizia a fare la query in cui estrai tutto il contenuto della tabella.
    crei un array vuoto
    cicli il result con il fetch
    e inserisci i valori ottenuti nell'array precedentemente creato mettendo come chiave del nuovo elemento la marca...
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  9. #9
    Originariamente inviato da oly1982
    Non è una questione di righe del menù:al di là della grandezza del menu (che dipenderà dai record presenti nella tabella) il codice è lo stesso.

    inizia a fare la query in cui estrai tutto il contenuto della tabella.
    crei un array vuoto
    cicli il result con il fetch
    e inserisci i valori ottenuti nell'array precedentemente creato mettendo come chiave del nuovo elemento la marca...
    Quindi dovrei procedere cosi:
    Creo il database "database_prova".

    Inserisco i campi "ID"(Primary Key), "Id_cat", "Marca", "Modello".

    Creo una Query che estrae il contenuto della tabella:
    codice:
    $query = "SELECT * FROM database_prova ORDER BY `Marca`";
    Creo un Array vuota (se non ricordo male è cosi
    codice:
    $array_empt();
    (Questo è quel che ho capito ma al 90% ho capito malissimo):
    codice:
    foreach ($query as $x => $array_empt){
    echo "Risultato: $array_empt
    ";
    }
    E qui mi son bloccato...

  10. #10
    Originariamente inviato da shuttle15
    Quindi dovrei procedere cosi:
    Creo il database "database_prova".

    Inserisco i campi "ID"(Primary Key), "Id_cat", "Marca", "Modello".

    Creo una Query che estrae il contenuto della tabella:
    codice:
    $query = "SELECT * FROM database_prova ORDER BY `Marca`";
    penso e spero che il db lo hai già creato... credo che tu volessi intendere creare una tabella.

    Originariamente inviato da shuttle15
    Creo un Array vuota (se non ricordo male è cosi
    codice:
    $array_empt();
    (Questo è quel che ho capito ma al 90% ho capito malissimo):
    codice:
    foreach ($query as $x => $array_empt){
    echo "Risultato: $array_empt
    ";
    }
    E qui mi son bloccato...
    Perdonami se te lo dico... Ti mancano le basi.
    Non è che non ti si vuol aiutare... è che non ti si PUO' aiutare.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

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.