Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    scusami,

    Leggendo qualcos'altro sul SQL sono arrivato a questo punto:

    Codice PHP:
    $DBName "db_prova";
    $Table "prova";
    @
    mysql_select_db("$DBName");
    $risultati "SELECT* FROM $prova";
    $risultati mysql_query($risultati);
    $conto mysql_numrows($risultati); 
    Questo è ciò che ho fatto.

    Il mio DB contiene i seguenti campi:
    ID (primaria)
    Marca, VARCHAR(25)
    Modello, VARCHAR(25)

    Ora ho un ciclo "WHILE" per estrarre i valore e tutto funziona tranquillamente però non so come dire al PHP di mettere tutti i "Modelli" di un "Marca" sotto la stessa categoria....

    Mi sono spiegato?


    Il codice che mi stampa i valori è:

    Codice PHP:
    $i 0;
    if (
    $conto 1) {
        print 
    "<center>

    La ricerca non ha prodotto nessun risultato</p>/center>"
    ;
    }
    else {
        while (
    $conto $i) {
            
    $Cat mysql_result($risultati,$i,'Marca');
            
    $Subcat mysql_result($risultati,$i,'Modello');
            print 
    "[*]

    [b]
    $Categoria[/b]</p>
    "
    ;
            print 
    "<ul>

    $Sottocategoria</p>[/list]";
            
    $i++;
        }

    A mio parere invece di mettere un print "cat"-"subcat" dovrei mettere una condizione per controllare che il cat non sia uguale a quello messo in precedenza però poi tornerebbe il problema subito dopo perché se dovessi fare 10 categorie non posso impostare 10 varianti ecc...

    Cosa mi consigli??

  2. #12
    Scusami se te lo faccio notare, ma anche la struttura HTML del menù è sbagliata. Prima si apre la lista (<ul> = unordered list oppure [list=1] = ordered list) poi ci si inseriscono gli elementi della lista ([*]). Nel tuo caso non basta visto che il menu è nested (annidato) se ho capito bene.
    Fare o non fare....non c'è provare!

  3. #13
    In realtà ho omesso di scrivere l'"ul" che ho prima e dopo il while in quanto non c'entra con quel che stiamo vedendo


    Mi è venuta in mente una soluzione (forse) migliore,

    1. Dico di estrarre i valori con un "order by 'cat' ",
    2. Faccio una condizione che dice: (se il "cat" è uguale al precedente, stampa "subcat"..., altrimenti stampa "cat" e "subcat")

    Credete sia una soluzione? soprattutto fattibile?



    EDIT:
    Ordinando l'estrazione per cat e dopo subcat, sono riuscito ad ottenere ciò che volevo
    Questo è il codice che ho utilizzato:
    Codice PHP:
    $TmpCat 0;

    if (
    $conto1) {
        print 
    "<center>

    La ricerca non ha prodotto nessun risultato</p>/center>"
    ;
    }
    else {
        echo 
    "<ul>";
            while (
    $conto $i) {
                
    $Cat mysql_result($risultati,$i,'Marca');
                
    $SubCat mysql_result($risultati,$i,'Modello');
        if(
    $Cat == $TmpCat){
            print 
    "<ul>$SubCat[/list]";
    }
    else{
            print 
    "[*][b]$Cat[/b]
    "
    ;
            print 
    "<ul>$SubCat[/list]";
    }
                
    $TmpCat $Cat;
                
    $i++;
            }
        echo 
    "[/list]";
        } 
    Ora prima che passi alla formattazione c'è qualche consiglio che mi potete dare, cioè qualche errore che posso aver fatto o qualche miglioria da poter apportare??

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.