- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema Db di testo
-
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:
<?phpfunction 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>
-
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))
-
Ottimo ludoplus!
e grazie per aver fornito anche la soluzione..