Autor Zpráva
soucekgns
Profil
Mám tento kód pro výpis z xml:
$xml=simplexml_load_file("testy.xml");
  foreach ($xml->komentar as $komentar){
      echo $komentar->schoolsubject;
      echo $komentar->subject;
      echo $komentar->username;
  }

Potřeboval bych, aby se mi vypsalo pouze prvních 10 komentářů. Dále pokud existuje druhých 10 na jiné stránce a atd...
Díky za rady
Yuhů
Profil
zaveď pomocnou proměnnou (třeba $poradi), nastav ji mimo foreach na nulu, uvnitř foreach zvětšuj o jedna. V ní počítej, kolik těch komentářů je.

Uvnitř foreach dej podmínku, která v závislosti na pořadí komentáře řekne, zda se komentář má vypsat.

Také musíš zavést parametr do URL, který ti řekne, od kolikátého příspěvku to chce uživatel vidět (a umožní stránkování).

Za foreach dej samotný výpis stránkování. V pomocné proměnné budeš mít (z cyklu) spočítaný počet komentářů a z URL budeš vědět, na jaké jsi stránce.
soucekgns
Profil
díky, už jsem si to opravil
if (empty($page)) {$page=1;}
$min=$page*10-11;
$max=$page*10;
$i=0;
$xml=simplexml_load_file("test.xml");
  foreach ($xml->kom as $komentar){
  $cislo = $i++;
  if ($cislo > $min AND $cislo < $max){
      echo $komentar->jmeno. "<br>". $cislo . "<br>";
}
}
$prevpage = $page-1;
$nextpage = $page+1;
if (substr($i, -1) == 0) {
$pocetstranek = substr($i, 0, -1);
}
if (substr($i, -1) != 0) { 
$pocetstranek = substr($i, 0, -1)+1;
}
echo "<br>";
if ($page > 1 AND $pocetstranek > 1 AND ($page < $pocetstranek OR $page == $pocetstranek)) {echo '<a href="clanky.php?page='.$prevpage.'">predchozi</a>';}
echo " ";
if (($page == 1 OR $page > 1) AND $pocetstranek > 1 AND $page < $pocetstranek) {echo '<a href="clanky.php?page='.$nextpage.'">dalsi</a>';}
echo "<br>Počet článků: " .$i. "<br> Počet stránek: " .$pocetstranek. "<br>";

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: