• User

    Problema Db di testo

    Ciao a tutti, ho un problema, ho un db .txt formato da diverse riche del tipo: id|nome pagina|nome foto|

    Voglio scegliere random alcune foto ecco il codice della pagina "caso.php" a cui passo una variabile ?perpag=x

    Ilproblema è che ad esempio con ?perpag=10 mi visualizza 8, 9 e solo a volte 10 foto, ecco il codice:
    <?php

    function randiff($min, $max, $num) {

    if ($min<$max && $max-$min+1 >= $num && $num>0) {
    $random_nums = array();
    $i=0;
    while($i<$num) {
    $rand_num = rand($min, $max);
    if (!in_array($rand_num, $random_nums)) {
    $random_nums[] = $rand_num;
    $i++;
    }
    }
    return $random_nums;
    } else {
    return false;
    }
    }

    $perpagina= $_GET['perpag'];
    $f = file("video.txt");
    $c = count($f)-2;

    if ($perpagina > $c)
    {
    $perpagina = $c;
    }

    echo $perpagina;
    echo "<br><br><br><br>";
    $per = $perpagina;
    $nums = randiff(1, $c, $per);

    $hbd=0;

    $ii=0;
    $textfile = fopen("video.txt", "r");

    ?>
    <table width="130" border="0" align="center" cellpadding="0" cellspacing="2">
    <?php
    while ($rigafile = fgets($textfile))
    {

    $ii++;
    $sab=0;
    if (in_array($ii, $nums))
    {
    echo "<tr>";
    $riga = explode("|", $rigafile);
    $cartelpag= 'video/';
    $link=$riga[0];
    $link.='';
    $link.=$riga[1];
    $link.='.php';
    $link = str_replace ( ' ', '
    ' , $link );
    ?>
    <td><div align="center"> <a href="<?php echo $cartelpag.$link; ?>" target="_blank"><img class="foto" src="<?php echo $riga[4]; ?>" width="56" height="56" border="0"></a></div></td>
    <?php
    $ii++;

    while ($rigafile = fgets($textfile) and $sab==0 )
    {
    if (in_array($ii, $nums))
    {
    $riga = explode("|", $rigafile);
    $cartelpag= 'video/';
    $link=$riga[0];
    $link.='';
    $link.=$riga[1];
    $link.='.php';
    $link = str_replace ( ' ', '
    ' , $link );
    ?>
    <td><div align="center"> <a href="<?php echo $cartelpag.$link; ?>" target="_blank"><img class="foto" src="<?php echo $riga[4]; ?>" width="56" height="56" border="0"></a></div></td>
    <?php
    echo "</tr>";
    $sab=1;
    }else{
    $ii++;
    }
    }
    }
    }
    ?>
    </table>


  • User

    Risolto grazie a Gianni di phpnews.it
    Ecco il problema:

    Sostituisci:

    while ($rigafile = fgets($textfile) and $sab==0 )

    con

    while ($sab==0 and $rigafile = fgets($textfile))


  • User Attivo

    Ottimo ludoplus!

    e grazie per aver fornito anche la soluzione..