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

    [php]Ordinare risultati in due colonne

    Salve sto usando questo script per estrarre i dati delle offerte inserite nel mysql.
    In pratica quello che voglio fare è l'estrazione di 8 risultati(offerte) che pero vorrei visualizzare in due colonne separate.
    Sapreste indicarmi una funzione adatta che mi estrapoli i risultati in due colonne con 4 risultati per colonna?
    <?
    $result = nsofferte(0,8);
    while ($off = mysql_fetch_array($result)){
    echo '
    <tr>
    <td>[img]img/bullet_elenco.gif[/img]</td>
    <td width="100%">'.$off["destinazione"].'</td> </tr>';

    }
    ?>

  2. #2
    Prova a dare un'occhiata a questa pillola:

    http://forum.html.it/forum/showthrea...hreadid=469430
    Antropologia? Sì, grazie!
    http://www.antrocom.org

  3. #3
    Si ho visto la pillola che mi hai consigliato.
    Sembra un po più complessa di quello che avevo pensato io.
    Devo visualizzare solo i primi 8 record del database e mi interessa visualizzarli in due colonne da 4.
    Faro un po di prove per capire come devo muovermi con la pillola che mi hai consigliato.
    Grazie Red Wolf

  4. #4
    Tutto file liscio come l'olio.
    Ringrazio vivamente Vaibal(l'autore della pillola)
    e Red Wolf che me l'ha consigliata.

    Codice PHP:
    <?
                                                
    //partiamo dalla query per selezionare i dati 
                                                 
                                                
    $result nsofferte(0,8);
                                                
    //con mysql_num_rows contiamo i risultati ottenuti. 
                                                //questo valore ci servirà per la paginazione 
                                                
    $num_record mysql_num_rows($result); 
                                                
                                                
    //adesso dichiaro un po' di variabili utili allo script 
                                                
                                                //colonne è il numero di celle per riga che dovà avere la nostra tabella 
                                                
    $colonne 2
                                                
                                                
    //calcoliamo le righe della tabella che ci dovrebbero venire in base al numero di record 
                                                /*se ho 6 risultati e ho scelto 3 celle per riga avrò due righe totali*/ 
                                                
    $tot_righe $num_record/$colonne
                                                
                                                
    //dichiaro tre indici che mi serviranno 
                                                
    $i_x 0
                                                
    $x_x 0
                                                
    $k_x 0
                                                
                                                
    /*questo mi serve per determinare la lunghezza delle celle della tabella. 
                                                questo valore deve essere variabile ovviamente in base al numero di colonne. 
                                                mi spiego: se ho due colonne la singola cella dovrà 
                                                essere lunga il 50%; se metto tre colonne 
                                                dovrà essere il 33% e così via*/ 
                                                
    $cell_width floor(50/$colonne); 
                                                
                                                
                                                
    //adesso scrivo il codice di inizio tabella 
                                                
    echo 
                                                
    '<table width="100%" border="0" cellspacing="1" cellpadding="1"> 
                                                <tr>'

                                                
                                                
    //adesso scorriamo i risultati ottenuti con un ciclo while 
                                                        
    while($off mysql_fetch_array($result)){ 
                                                
                                                
    //incremento gli indici perchè mi serviranno dopo 
                                                
    $i_x++; 
                                                
    $k_x++; 
                                                
    $x_x++; 
                                                
                                                
    //stampo le celle dei risultati 
                                                
    echo'<td>[img]img/bullet_elenco.gif[/img]</td>
                                                  <td width="50%">[url="page/dett_offerte.php?id='
    .$off["]'.$off["destinazione"].'[/url]</td>'; 
                                                
                                                /*ogni volta che l'indice 
    $i_x è uguale al numero 
                                                di colonne scelto vuol dire che devo chiudere una riga*/ 
                                                if(
    $i_x == $colonne) { 
                                                     
                                                    echo'</tr>'; 
                                                     
                                                /*se invece l'indice 
    $i_x è uguale al numero di colonne 
                                                scelto ma l'indice 
    $x_x diviso le colonne è diverso 
                                                dalle righe che dovremmo avere vuol dire che ci sono 
                                                ancora dei risultati da stampare. quindi apro una nuova riga*/ 
                                                
                                                if (
    $i_x == $colonne && (($x_x/$colonne) != $tot_righe)) { 
                                                
                                                        echo'<tr>'; 
                                                
                                                             } 
                                                //riazzero l'indice 
    $i_x per riniziare i calcoli fin quando mi serve 
                                                
    $i_x = 0; 
                                                                                    } // fine 
    $i_x == $colonne 
                                                
                                                } //fine del ciclo 
                                                
                                                /*a questo punto devo vedere che tipo di tabella mi è venuta fuori. 
                                                in pratica devo vedere se ci sono delle celle vuote 
                                                da stampare oppure posso chiudere la tabella. 
                                                per fare questo faccio due controlli 
                                                
                                                se il numero di celle scelte per riga è superiore ai risultati ottenuti per riga stampo o meno le celle mancanti. 
                                                
                                                questo può succedere perchè magari abbiamo scelto di 
                                                avere 3 celle per riga ma i risultati ottenuti sono 4 
                                                e quindi c'è l'inizio di una seconda riga che 
                                                deve avere per forza tre celle... 
                                                un po' contorto ma dovreste aver capito*/ 
                                                
                                                if (
    $colonne <= $x_x){ 
                                                
                                                /*stampo le celle mancanti se la divisione dei risultati per le colonne dà il resto. 
                                                questo vuol dire appunto che 
                                                ci sono meno risultati per riga rispetto alle celle scelte*/ 
                                                if ((
    $k_x%$colonne) != 0){ 
                                                
                                                    
    $indice = $k_x
                                                
                                                /*inizio un breve ciclo che in pratica fa questo: 
                                                "
    per ogni rigase vedi che i risultati ottenuti 
                                                sono inferiori alle celle scelte con $colonne

                                                
    stampami delle celle vuote fino ad arrivare 
                                                al completamento della riga
    */ 
                                                while ((
    $indice%$colonne) != ){ 
                                                
                                                echo
    '<td>[img]immagine_vuota.gif[/img]</td>'
                                                
                                                
    //incremento il nuovo indice per ripetere l'operazione fin quando necessario 
                                                
    $indice++; 
                                                
                                                             } 
    //fine ciclo while 
                                                
                                                /*se invece la divisione non dà resto vuol dire che 
                                                il numero di risulati va bene in base alle celle scelte 
                                                (ad esempio 3 celle per riga con 6 risulati: 6/3 = 2)*/ 
                                                
                                                  
    if(($indice%$colonne) == ){ 
                                                
                                                echo
    '</tr>'
                                                         
                                                          } 
                                                
                                                        } 
    //fine ($k%$colonne)!= 0 
                                                
                                                                
                                                /*stessa cosa qui: il numero di risulati va bene in base 
                                                alle celle scelte e quindi posso chiudere la riga*/ 
                                                
    } else{ //fine if $colonne <= $x 
                                                  
                                                
    echo '</tr>'
                                                                 
                                                                 } 
                                                
                                                
    //adesso posso finalmente chiudere la tabella 
                                                
    echo '</table>';

                                                
    ?>

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.