• User Attivo

    Ciclo While, e immagine a coppie di 2

    Ciao amici, questa discussione oltre che il Php riguard anche l html, quindi non è precisissima come locazione.

    Oo estraggo i file del percorso immagine da mysql.

    Poi con un ciclo li recupero, pero vorrei che le immagini fossero a coppie di due accanto, e poi accapo, con un altra coppia ecc , vi faccio un esempio spero si capisca

    [IMM][IMM]
    [IMM][IMM]
    [IMM]

    Non sono praticissimo di html, spero mi sappiate aiutare, ricordando che deve essere abbinata ad un ciclo,
    o se no suggeritemi un altro metodo.

    Grazie, Francesco.


  • ModSenior

    Ciao BOES,
    usa una variabile contatore per sapere quando andare a capo.
    Sapere l'html è comunque fondamentale per poter usare php.


  • User Attivo

    @Thedarkita said:

    Ciao BOES,
    usa una variabile contatore per sapere quando andare a capo.
    Sapere l'html è comunque fondamentale per poter usare php.

    quindi sapere con COUNT() quante imm sono e agire con quella?

    pero rimane il gatto che in grammatica HTML come si scrive?

    e dovrei creare tante variabili quanto le immagini mi sa allora


  • User Attivo

    In pratica dovresti fare qualcosa del genere :

    [php]
    // imposti un contatore
    $i = 0;
    while($row = mysql_fetch_assoc($result))
    {
    echo $row['img'];
    // il contatore aumentata di un intero ad ogni iterazione
    $i++;
    // quando il contatore arriva a 2 vado a capo e lo azzero
    if($i == 2)
    {
    echo '<br />';
    $i = 0;
    }
    }
    [/php]Puoi impostare anche un modulo nella condizione del gestore del flusso :
    [php]
    if($i % 2) echo '<br />';
    [/php]In questo modo non lo devi neanche azzerare.


  • User

    @supercapocc said:

    In pratica dovresti fare qualcosa del genere :

    [php]
    // imposti un contatore
    $i = 0;
    while($row = mysql_fetch_assoc($result))
    {
    echo $row['img'];
    // il contatore aumentata di un intero ad ogni iterazione
    $i++;
    // quando il contatore arriva a 2 vado a capo e lo azzero
    if($i == 2)
    {
    echo '<br />';
    $i = 0;
    }
    }
    [/php]Puoi impostare anche un modulo nella condizione del gestore del flusso :
    [php]
    if($i % 2) echo '<br />';
    [/php]In questo modo non lo devi neanche azzerare.

    Sicuramente è una soluzione, ma personalmente trovo che sia la meno elegante in quanto fa fare a php lavoro inutile che sarebbe bene lasciare alle tecnologie di markup lato client tanto per risparmiare in termini prestazionali quanto per praticizzare la futura riformattazione del layout.

    Io suggerirei pertanto una soluzione (prendendo come assunto ipotetico che le tue immagini sono 100x100) come la seguente.

    Da CSS:

    div#imgContainer{
    width:200px;
    }
    
    div#imgContainer img{
    display:block;
    float:left;
    width:100px;
    height:100px;
    }
    

    Da HTML/PHP
    [PHP]<div id="imgContainer">

    <?php

    while (condizione di scorrimento tua delle immagini)
    {

    echo "<img src="$url_immagine" alt="Immagine" />";

    }

    ?>

    </div>[/PHP]