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

    Aiuto su impaginazione lista

    estrapolo dei dati da una db e li metto sotto forma di lista (ul - li):
    Codice PHP:
        <ul>
            <?php
            
    foreach (showMarchi() as $marc) {
                if (
    $marc['marchio_url'] != NULL) {
                    echo 
    '[*][url="http://' $marc['marchio_url'] . '"]<span class="blink">' $marc['marchio_nome'] . '</span>[/url]';
                } else {
                    echo 
    '[*]' $marc['marchio_nome'] . '';
                }
            }
            
    ?>[/list]
    mi hanno detto che la lista può arrivare facilmente a 70/80 voci e quindi ho pensato di non mettere le voci una sotto l'altra totalmente, ma di disporla in colonne.
    max tre colonne.
    come posso secondo voi?
    anche senza usare ul/li ovviamente.
    l'importante è che siano suddivisi su un max di tre colonne in modo da nn andare troppo in guù con la pagina.

  2. #2
    Metterle in tabella non ti va bene???
    E cmq che db usi???

  3. #3
    Originariamente inviato da Saretta883
    Metterle in tabella non ti va bene???
    E cmq che db usi???
    si mi andrebbe bene, ma anche li devo avere almeno tre colonne di dati.
    se uso una sola colonna ho lo stesso problema.

    mysql, ma nn penso cambi molto il db in questo caso.

  4. #4
    Codice PHP:
    $query="select codice_prodotto, data, quantita from acquisti";
    $ris=mysql_query($query);
    echo 
    "<table>";
    echo
    "<tr><td>Codice Prodotto</td><td>Data</td><td>Quantità</td></tr>";
    while(
    $riga=mysql_fetch_assoc($ris)){
          echo 
    "<tr><td>".$riga['codice_prodotto']."</td>";
        echo 
    "<td>".$riga['data']."</td>";
        echo 
    "<td>".$riga['quantita']."</td></tr>";
    }
    echo 
    "</table>"
    Non dici una cosa del genere??? Popolare una tabella con tre colonne i cui dati provengono da un db!!! No???
    Sapere il db serve per sapere se usare mysql o oci per esempio.

  5. #5
    allora, mi spiego meglio.
    io ho solo un campo in questa tabella praticamente.
    quindi dovrei fare una cosa del genere.
    supponiamo di avere 90 record.
    invece di visualizzarli così:
    nome 1
    nome 2
    nome 3
    ..........
    nome 90

    dovrei avere una cosa del genere:
    nome1 nome31 nome61
    nome2 nome32 nome62
    nome3 nome33 nome63
    ......... .............
    nome30 nome60 nome90

    ora, che sia usando la tabella, o i div, o li nn importa.
    l'importante è che i dati siano divisi per colonne con un max di 30 risultati per colonna (più 90 marchi nn ci saranno e anzi sono già troppi).

  6. #6
    L'unica soluzione che mi viene in mente ora, molto brutta, ma che dovrebbe fare quello che vuoi è la seguente.

    Usa LIMIT pre prendere i primi 30 record poi i secondi 30 e così via e metti il risultato della query come ti ho detto io in una colonna della tabella poi in un'altra ecc...
    mi sono spiegata???
    Non so se ti può andare bene...

  7. #7
    riprendendo il codice di saretta potresti fare così

    Codice PHP:
    <?php
    $query 
    "select codice_prodotto, data, quantita from acquisti";
    $ris mysql_query($query);

    $elemPerCol 30;

    $results = array();
    while (
    $riga mysql_fetch_assoc($ris)) {
        
    $results[] = $riga;
    }

    $results array_chunk($results$elemPerCol); //suddivido il risultato in parti
    $rows sizeof($results[0]); //sulla prima colonna conto le righe
    $cols sizeof($results); //n colonne
    ?>
    <table>
        <?php
        
    for ($i 0$i $rows$i++) {
            
    ?>
            <tr>
                <?php
                
    for ($j 0$j $cols$j++) {
                    if(
    $results[$cols][$rows]){
                        echo 
    '<td>[url="http://' $marc['marchio_url'] . '"]<span class="blink">' $marc['marchio_nome'] . '</span>[/url]</td>';
                    }
                }
                
    ?>
            </tr>
            <?php
        
    }
    spero di non aver scritto cazzate perchè non l'ho testato
    Ubuntu rulez!! :P

  8. #8
    Originariamente inviato da Saretta883
    L'unica soluzione che mi viene in mente ora, molto brutta, ma che dovrebbe fare quello che vuoi è la seguente.

    Usa LIMIT pre prendere i primi 30 record poi i secondi 30 e così via e metti il risultato della query come ti ho detto io in una colonna della tabella poi in un'altra ecc...
    mi sono spiegata???
    Non so se ti può andare bene...
    si a questo ci avevo pensato, ma lo tenevo come ultima soluzione perchè vorrebbe dire fare tre query particamente:
    1-30
    31-60
    61-90

    nn è propio il massimo.
    devo porvare con i cicli come ha detto simotenax.
    potre fare un ciclo da 30 per la prima colonna, ecc.....

  9. #9
    puoi farne anche una sola... dove metti al posto di 1 $da e al posto di 30 $a.
    dove $a è il max di righe che vuoi vedere per colonne
    $maxcolonne=30
    $da parte da 1.
    la prima volta $da=1 e $a=1*$maxcolonne
    la seconda volta $da=$da+$maxcolonne e $a=2*$maxcolonne
    ecc...
    il valore 1 e 2 puoi farli aumentare con un ciclo...
    Non so se mi sono spiegata

  10. #10
    Originariamente inviato da Saretta883
    puoi farne anche una sola... dove metti al posto di 1 $da e al posto di 30 $a.
    dove $a è il max di righe che vuoi vedere per colonne
    $maxcolonne=30
    $da parte da 1.
    la prima volta $da=1 e $a=1*$maxcolonne
    la seconda volta $da=$da+$maxcolonne e $a=2*$maxcolonne
    ecc...
    il valore 1 e 2 puoi farli aumentare con un ciclo...
    Non so se mi sono spiegata
    quindi nn useresti LIMIT in questo caso.
    o nn ho capito io?
    nel senso che con LIMIT a me basterebbe una query del genere:
    Codice PHP:
    "SELECT * FROM marchi ORDER BY marchio_nome LIMIT " $da ",30" 
    quello che varia è sola da dove comincia a prendere i dati.
    il limite rimane sempre 30.

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.