Autor Zpráva
Truuhlik
Profil
takže snažím se nastránkovat data z flat file db, ovšem nedaří se mi vypsat data tak jak bych chtěl,

údajně by to mohlo jít cituji Ty data třeba nacpi do pole a z něj vypisuj - ať dělám co dělám mé snahy nahnat data do pole a z něj vypisovat jsou bezúspěšné, založil jsem tohle nové vlákno aby si toho někdo všiml - to staré je už někde vzadu a pochybuju, že by na něj někdo přišel

předem díky všem za jakoukoli pomoc

a tady přikládám kód

header("Content-Type: text/html; charset=utf-8");

$soubor = file("data/soubory.txt");

$radku = count($soubor);
$po = 10;
$max_stranek = ceil($radku/$po);
$url_stranka = ($_GET['stranka']/$po)+1;

if(empty($_GET['stranka'])){$stranka = 0;}
else{$stranka = $_GET['stranka'];}

foreach($soubor as $line){
$data = explode("||", $line);
if($data[0] == $_GET['id'])continue;
else{
$idecko = $data[0];
$nazev = $data[1];
$url = $data[2];
}
}

/*tady je ten největší problém - docílil jsem vytáhnutí 10ti řádků to jo, 
ale ten řádek je pořád stejný - nevěděl by někdo jak na to?*/
echo "<table>";
for($a = $stranka; $a<$stranka+$po; $a++){

echo "<tr>
        <td>$nazev</td>
        <td><a href='$url'>Stáhnout</a></td>
    </tr>";
}
echo "</table>";





//tady si vypíšu číslování 1, 2, 3... atd plně funkční
for($i=0; $i<$max_stranek; $i++){
$cislo = ($i+1);
$url_cislo = ($cislo*$po)-$po;

if($url_stranka!=$cislo){
echo "<a href='?stranka=$url_cislo'>$cislo</a>";
}
else{
echo "<strong>$cislo</strong>";
}
}
Truuhlik
Profil
už uběhlo pár dní, fakt by nevěděl někdo jak na to ?
mylan
Profil
Upravil som ti ten kód podľa jedného môjho skriptu, malo by fungovať ako vypisovanie, tak aj stránkovanie. Nepochopil som však celkom na čo slúži to porovnávané $_GET['id'], tak snáď som to urobil dobre.
<?php

  $file = file('data/soubory.txt');
  $lines = array();



  // na základe $_GET['id'] vynecháme nepotrebné riadky. Nemá tá podmienka byť naopak? Takto: if ($line_data[0] != $_GET['id']) continue;
  foreach ($file as $single_line) {
    $line_data = explode('||', $single_line);
    
    if (isset($_GET['id']) && $line_data[0] == $_GET['id']) continue;
    else {
      $lines[] = $single_line;
    }
  }



  $lines_count = count($lines); // počet riadkov (len tých potrebných)
  $items_per_page = 10; // počet vypisovaných záznamov na stránku (obdoba $po)
  $pages_count = ceil($lines_count / $items_per_page); // počet stránok / číslo poslednej stránky
  $page = (isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page'] <= $pages_count) ? $_GET['page'] : 1; // číslo aktuálnej stránky



  // určíme počiatočný a konečný záznam
  $first = ( ( $page - 1 ) * $items_per_page );
  $last = ( ($lines_count - $first) > $items_per_page ) ? ( $first + $items_per_page ) : $lines_count;



  // výpis samotných záznamov podľa čísla prvku v poli
  echo '<table>';
  for ($i = $first; $i < $last; $i++) {
    $data = explode('||', $lines[$i]);
    echo '<tr><td>' . $data[1] . '</td><td><a href="' . $data[2] . '">Stáhnout</a></td></tr>';
  }
  echo '</table>';
  


  // stránkovanie
  for ($j = 1; $j <= $pages_count; $j++) {
    echo ($page == $j) ? '<strong>' . $j . '</strong> ' : '<a href="?id=' . (int)$_GET['id'] . '&amp;page=' . $j . '">' . $j . '</a> ';
  }

?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: