• User

    tabella dinamica ripetuta in orizzontale anziche in verticale

    con il codice sottostante sto creando una tabella dove mi vengono prelevati solo gli ultimi due consigli inseriti in mysql.
    il problema è che i due record prelevati vengono visualizzati uno sotto l'altro e invece io vorrei metterli uno di fianco all'altro....
    ossia
    foto descrizione foto descrizione
    e non
    foto descrizione
    foto descrizione

    dove sbaglio?

    <?php do { ?>
    <table width="50%" cellpadding="0" cellspacing="2">
    <tr>
    <td width="124" height="163"><img src="_blank.gif" width="12" height="1"><img src="<?php echo $row_consigli['foto']; ?>" width="120" height="120" border="0" class="Bordered"></td>
    <td width="541" valign="middle" class="Indented1"><p><strong><?php echo $row_consigli['titolo']; ?></strong><br>
    <br>
    <?php echo $row_consigli['descrizionebreve']; ?><br>
    <br>
    </p></td>
    </tr>
    </table>
    <?php } while ($row_consigli = mysql_fetch_assoc($consigli)); ?><br>


  • User Attivo

    :ciauz:Ciao thenax,
    all'interno del loop do-while tu fai aprire e chiudere una tabella ogni volta, pertanto ogni risultato appare sotto quello precedente.

    Per ottenere l'effetto che desideri devi ingegnarti un po'...

    Metti all'inizio del loop un variabile a zero e subito dopo l'istruzione do la incrementi di un'unità, successivamente ti calcoli il resto della divisione per 2, in modo che a loop alterni ti dia 1 o 0:

    $i=0;
    ***<?php do { ***
    ***$i++; ***
    $resto=$i%2;
    ?>

    In questo modo $resto varrà alternativamente 1 o 0 partendo da 1. Fatto ciò, devi formattare l'output in modo che la tabella e la riga vengano aperte solo quando $resto==1 e vengano chiuse solo quando $resto==0: con il conseguente risultato di affiancare per ogni riga non 2 ma 4 celle, esattamente come hai chiesto tu.

    Ovviamente devi dimezzare la larghezza di ogni cella.

    Tienici aggiornato sugli sviluppi!
    :ciauz: