Autor Zpráva
Cinkular
Profil *
Prosím o pomoc
Potreboval by som vypisovať subory zo zložky podla datumu zmeny, teraz mi to vypisuje podla abecedy a nejakým rádio buttonom alebo niecim podobným by sa tie radenia dali navzajom prepínat.
Skript ktorí používam:
<?php
  $files_max = 100;   //maximálny počet zobrazovaných súborov

  $zlozka = dir("./");
  while($file = $zlozka->read()) {
    if ($file == "." || $file == ".." || ((substr($file,-4) !== ".jpg") && (substr($file,-4) !== ".JPG"))) continue;
    $files[] = $file;
  }
  $zlozka->close();



  sort($files);
  reset($files);
  
  $max = count($files);
  if ($max > $files_max) $max = $files_max;
  
  if (empty($_GET["page"])) $page = 1;
  else $page = $_GET["page"];



  /* ----- Pomocné premenné ----- */
  $a = (($page-1)*$max);
  $b = (($a+$max)-1);
  $c = 1;
  $d = 0;



  /* ----- Výpis súborov ----- */
  if (file_exists($files[$a])) {
    $i = $a;
    while (($i <= $b) && file_exists($files[$i])) {
       echo "<small><a style='text-decoration:none;' href='./".$files[$i]."' target='_blank'>".$files[$i]."</a><br></small>";
       $i++;
    }
  }
?>
<p></p>
<?php
  /* ----- Stránkovanie ----- */
  if ($page == 1) {
    echo "| 1 ";
    $c++;
    $d = $d+$max;
    while (file_exists($files[$d])) {
      echo "| <small><a style='font-weight: bold;' href='./?page=$c'>$c</a></small> ";
      $c++;
      $d = $d+$max;
    }
    echo "|";
  }

  elseif (($page > 1) && (file_exists($files[$b]))) {
    while (($c <= ($page-1)) && file_exists($files[$d])) {
      echo "| <small><a style='font-weight: bold;' href='./?page=$c'>$c</a></small> ";
      $c++;
      $d = $d+$max;
    }
    echo "| $page ";
    $c++;
    $d = $d+$max;
    while (file_exists($files[$d])) {
      echo "| <small><a style='font-weight: bold;' href='./?page=$c'>$c</a></small> ";
      $c++;
      $d = $d+$max;
    }
    echo "|";
  }

  elseif (($page > 1) && (file_exists($files[$a]))) {
    while (($c <= ($page-1)) && file_exists($files[$d])) {
      echo "| <small><a style='font-weight: bold;' href='./?page=$c'>$c</a></small> ";
      $c++;
      $d = $d+$max;
    }
    echo "| $page ";
  }

  else {
    while (file_exists($files[$d])) {
      echo "| <small><a style='font-weight: bold;' href='./?page=$c'>$c</a></small> ";
      $c++;
      $d = $d+$max;
    }
    echo "|";
  }

?>
keeehi
Profil
Funkce filemtime();/filectime(); (jedna z nich, nevím přesně která) ti zjistí čas poslední změny nějakého souboru. Seřadit si to už snad zvládneš.
Cinkular
Profil *
No bohužial nezvladnem, nevedel by si mi s tým pomôct?
keeehi
Profil
toto:
if($_POST["rbutt"]=="2" and !empty($_POST["odeslat"])){
  foreach($files as $soubor)
    $casy[]=filemtime($soubor);
  array_multisort($casy,$files);
  reset($files);
}
else{
  sort($files);
  reset($files);
}

dej místo tohoto:
  sort($files);
  reset($files);


a do html přidej:
<form method="post" name="formular" action="jmeno.php">
  <input type="radio" name="rbut" value="1">jméno<br>
  <input type="radio" name="rbut" value="2">cas
  <input type="submit" name="odeslat" value=" Odeslat ">
</form>


Netestoval jsem tu úplně celé, ale mělo by to fungovat.
AM_
Profil
soubory si namapuješ do asociativního pole ve formátu [čas poslední změny]=>"jméno souboru" a následně podle klíče setřídíš funkcí ksort. To je vše, co k tomu potřebuješ.
Cinkular
Profil *
keeehi:
Radiobutton tam vybehne ale nic to nerobí, Ked dam zoradit podla mena tak to vyhodí eror 404
keeehi
Profil
<form method="post" name="formular" action="jmeno.php">
Uprav si jméno scriptu. Já to jméno neznám, proto jsem ho tam ani nemohl napsat.

A příště zkus chvíli zkoumat. Není to jenom o Ctrl+C a Ctrl+V.
Cinkular
Profil *
keeehi:
Ja viem a je mi to trapne vas tu obtažovat ale fakt som z toho dutý.
Idem to skusit
Cinkular
Profil *
keeehi:
Zmenil som to jmeno na index tak ako sa vola a absolutne to nic nerobi, vypisuje to vstale podla abecedy, nevies kde by mohla byt zrada?
keeehi
Profil
ještě tu je překlep:
  <input type="radio" name="rbutt" value="1">jméno<br>
  <input type="radio" name="rbutt" value="2">cas


A jak jsem psal výše, zkus nejdřív hledat sám.
Cinkular
Profil *
keeehi:
Wow, Ďakujem teraz to funguje, velmy si mi pomohol ešte raz ďakujem.
keeehi
Profil
Cinkular:
Rádo se stalo.

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: