• User Newbie

    Stampare immagini da cartelle mantenendo un riferimento con sql

    Ciao a tutti, sto realizzando un funzione in php che mi estragga delle immagini da cartella e le stampi a video.
    Su ciascuna immagine verrà stampato del testo sotto forma di caption che viene estratto dal db.
    Ora, con questa funzione vado ad aprire la cartella delle immagini, a leggerne il contenuto e a metterlo in un array:

    $folder_path = 'images/thumbs/wedding/'; //image's folder path

    $num_files = glob($folder_path . "*.{JPG,jpg,gif,png,bmp}", GLOB_BRACE);
    $folder = opendir($folder_path);
    if($num_files > 0)
    {
    while(false !== ($file = readdir($folder)))
    {

    $file_path_03 = $folder_path.$file;

    $extension = strtolower(pathinfo($file ,PATHINFO_EXTENSION));
    if($extension=='jpg' || $extension =='png' || $extension == 'gif' || $extension == 'bmp')
    {
    ?>

    <?php
    }
    }
    }
    closedir($folder);
    ?>

    Con quest' altra vado a fare una query sul db per l' estrazione del campo 'text' (contenente 3 record)

    $text=mysql_query("select text from caption_text");
    $result = array();
    while($re=mysql_fetch_array($text)){
    $result[] = $re[0];
    }
    for ($i=0; $i< sizeof ($result); $i++){

    }
    

    Il problema è che in questo modo vado a stampare solo il primo record della tabella, quindi, se stampo 3 immagini, su ciascuna verrà stampato sempre solo il primo record. Come risolvo?
    Grazie ragazzi


  • User Attivo

    Sinceramente non ho capito la parte " l'estrazione del campo 'text' (contenente 3 record) ", che intendi per "contenente 3 record"?

    Il problema è che in questo modo vado a stampare solo il primo record della tabella, quindi, se stampo 3 immagini, su ciascuna verrà stampato sempre solo il primo record.

    Intendi che sulla caption ti ritrovi sempre il campo text della prima ROW?


  • User Newbie

    Si infatti mi sono espressa male. Se nella mia pagina vengono stampate 01.jpg e 02.jpg, nella caption mi ritrovo sempre il valore di text della prima row. Grazie


  • User Attivo

    Allora puoi postare la parte di codice che usi per lo stampaggio delle caption?

    Perchè qui:

    $text=mysql_query("select text from caption_text");
    $result = array();
    while($re=mysql_fetch_array($text)){
    $result[] = $re[0];
    }
    for ($i=0; $i< sizeof ($result); $i++){

    }
    

    vedo solo l'assegnazione del $re[0] (che presumo sia 'text') ad un array nominato $result.

    Consiglio mio, invece di usare il for non hai pensato ad un foreach?