| Autor | Správa |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 31.01.08 17:14 |   |
Nazdar,
používam script na načítanie súborov z priečinku. Každy súbor má názov iba číslo (1, 2, 3..), takže súbory mi načítava v poradí podla mena, čiže od 1 do ... Ako spravím, aby mi načítavalo súbory od zadu, teda 3, 2, 1 ??? Ďakujem |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
p360t
 Skúsený užívateľ
 Založený: 30.05.2006 Príspevky: 1775 Bydlisko: BA - EASTSIDE
 | Zaslal: Št 31.01.08 18:40 |   |
Predpokladám, že tam máš nejaký cyklus. Tak zmeň riadiacu podmienku tak, aby išla od najvyšších čísel k najnižším.
| kód: |
$n = 3;
for ($i = $n; $i > 0; $i--){
echo $i;
}
|
|
_________________ [quote="A. S. Tanenbaum"]The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.[/quote] | |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 31.01.08 19:00 |   |
aha chapem teda... nemohol by si mi to zaradit sem?
| kód: |
<?php
if ($priecinok = opendir('web-tvorba/'))
{
while (false !== ($file = readdir($priecinok)))
{
$pole = explode(".", $file);
$id = $pole[0];
@$pripona = $pole[1];
if($pripona == "php") {
include "web-tvorba/$file";
$kat0 = SubStr($popis, 0, 250);
$kat = "$kat0 ... <a href=\"?stranka=web-detail&id=$id\">viac>></a>";
echo "<h1>$nazov</h1>
<span class=\"bocny-text\"><a href=\"?stranka=web-detail&id=$id\">Detial stránky</a> | <a href=\"zobraz-web.php?id=$id\">Zobraziť stránku</a></span> <br />
<span class=\"obrazok-vlavo\"><a href=\"?stranka=web-detail&id=$id\"><img class=\"nahlad2\" src=\"obrazky/nahlad-web-tvorba/$id.jpg\" alt=\"$id\"/></a></span>
<p>
$kat
</p>
<div class=\"oddelovac\"></div>";
}
}
closedir($priecinok);
}
?> |
diky
a este jedna otazka.. tam si dal ze $n=3.. to znamena, ze tam musi byt vzdy najvyssie cislo, teda pocet suborov v priecinku? alebo tam mozem bachnut 1000 a je to?  |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
p360t
 Skúsený užívateľ
 Založený: 30.05.2006 Príspevky: 1775 Bydlisko: BA - EASTSIDE
 | Zaslal: Št 31.01.08 19:14 |   |
Ok, zabudol som ako sa v PHP pracuje so súbormi... For cyklus tam nie je, takže na to budeme musieť ísť inak.
| kód: |
<?php
if ($priecinok = opendir('web-tvorba/'))
{
while (false !== ($file = readdir($priecinok)))
{
$files[] = $file;
}
rsort($files);
foreach ($files as $file)
{
$pole = explode(".", $file);
$id = $pole[0];
@$pripona = $pole[1];
if($pripona == "php") {
include "web-tvorba/$file";
$kat0 = SubStr($popis, 0, 250);
$kat = "$kat0 ... <a href=\"?stranka=web-detail&id=$id\">viac>></a>";
echo "<h1>$nazov</h1>
<span class=\"bocny-text\"><a href=\"?stranka=web-detail&id=$id\">Detial stránky</a> | <a href=\"zobraz-web.php?id=$id\">Zobraziť stránku</a></span> <br />
<span class=\"obrazok-vlavo\"><a href=\"?stranka=web-detail&id=$id\"><img class=\"nahlad2\" src=\"obrazky/nahlad-web-tvorba/$id.jpg\" alt=\"$id\"/></a></span>
<p>
$kat
</p>
<div class=\"oddelovac\"></div>";
}
}
closedir($priecinok);
}
?> |
Zmeny ktoré som spravil - na začiatku si len načítame všetky súbory do poľa. Potom pole zoradíme v obrátenom poradí (vlastne sa len prehodia indexy) a pre každý prvok poľa spustíme ten istý kód, ako predtým. Malo by to byť bez chyby (dúfam).
To číslo 3 bol len príklad na výpis 3 2 1. |
_________________ [quote="A. S. Tanenbaum"]The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.[/quote] | |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 31.01.08 19:28 |   |
jj je to bez chyby, ďakujem velmi moc len trochu nechápem tomu čo si tam popridával, ale to si už naštudujem na php.net ešte raz dik, veľmi si pomohol |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 31.01.08 21:09 |   |
nechcel som otvárať novú tému, tak sem napíšem problém, ktorý sa viac menej týka scriptu vyššie... chcel by som tam spraviť stránkovanie. ak bduem mať viac ako dajme tomu 10 suborov, aby ich hned nenacitalo, ale spravilo stránkovanie po tich 10tich suborov.. nikde som nenasiel nejake strankovanie kde neni pouzita databaza... dalo by sa to aj pri tomto?? |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
p360t
 Skúsený užívateľ
 Založený: 30.05.2006 Príspevky: 1775 Bydlisko: BA - EASTSIDE
 | Zaslal: Št 31.01.08 21:32 |   |
Skús toto:
| kód: |
<?php
if ($priecinok = opendir('web-tvorba/'))
{
while (false !== ($file = readdir($priecinok)))
{
$files[] = $file;
}
rsort($files);
// strankovanie zaciatok
define('POCET_NA_JEDNU_STRANKU', 5); // konstanta k strankovaniu
array_chunk($files, POCET_NA_JEDNU_STRANKU);
$pocet_stranok = count($files);
if (isset($files[$_GET['page']]))
{
$aktualna = $_GET['p'];
} else
{
$aktualna = 0;
}
if ($aktualna > 0 )
{
$predosla = $aktualna - 1;
} else
{
$predosla = false;
}
if ($aktualna < ($pocet_stranok - 1))
{
$nasledujuca = $aktualna + 1;
} else
{
$nasledujuca = false;
}
// strankovanie koniec
foreach ($files[$aktualna] as $file)
{
$pole = explode(".", $file);
$id = $pole[0];
@$pripona = $pole[1];
if($pripona == "php") {
include "web-tvorba/$file";
$kat0 = SubStr($popis, 0, 250);
$kat = "$kat0 ... <a href=\"?stranka=web-detail&id=$id\">viac>></a>";
echo "<h1>$nazov</h1>
<span class=\"bocny-text\"><a href=\"?stranka=web-detail&id=$id\">Detial stránky</a> | <a href=\"zobraz-web.php?id=$id\">Zobraziť stránku</a></span> <br />
<span class=\"obrazok-vlavo\"><a href=\"?stranka=web-detail&id=$id\"><img class=\"nahlad2\" src=\"obrazky/nahlad-web-tvorba/$id.jpg\" alt=\"$id\"/></a></span>
<p>
$kat
</p>
<div class=\"oddelovac\"></div>";
}
}
closedir($priecinok);
// strankovanie - vypis
if ($predosla)
{
echo "<a href=\"?p=$predosla\">Predošlá</a><br>";// predchadzajuca
}
foreach ($files as $key=>$value)
{
if ($key != $aktualna)
{
echo "<a href=\"?p=$key>$key</a><br>";
} else
{
echo $key."<br>";
}
}
if ($nasledujuca)
{
echo "<a href=\"?p=$nasledujuca\">Nasledujúca</a>";// nasledujuca
}
}
?>
|
Kľúčová funkcia je array_chunk, tá ti rozdelí pole na rovnaké kúsky, potom vypisuješ len ten jeden kúsok a pre samotné stránkovanie používaš len tie indexy kúskov. Treba dať pozor na to, že indexy v poli začínajú od nuly (preto budeš mať vo výpise tiež od nuly, ale dá sa to napraviť jednoduchým pričítaním jednotky). |
_________________ [quote="A. S. Tanenbaum"]The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.[/quote] | |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 31.01.08 21:53 |   |
tak skusil som to, a nešlo.. bol itam nejake chyby
if (isset($files[$_GET['page']]))
{
$aktualna = $_GET['p'];
kde mozes videt, ze zistuje page ale odobera uz p... ale to je malickost.. vobec nechapem ze ako to pracuje, tak sam to asi nerozbehnem.. a co som si vsimol.. tak co zobrazuje te odkazy na strankovanie, tak su tam odkazy nie napr. 1-2-3-4-5-6 ale iba parne (2-4-6-8) alebo pri inej strane, ked som zmenil p tak bol iazse nepárne (1-3-5-7) |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
p360t
 Skúsený užívateľ
 Založený: 30.05.2006 Príspevky: 1775 Bydlisko: BA - EASTSIDE
 | Zaslal: Št 31.01.08 22:03 |   |
Hmmmm... No, p a page je preklep, len si to zjednoť. Myšlienka bola taká, že rozdelíme si všetky súbory pomocou array_chunk na polia rovnako veľké, vypíšeme obsah aktuálneho poľa a potom nejak vypíšeme odkazy na ostatné. Pozri si v dokumentácii array_chunk atď a možno niečo doklepeš. |
_________________ [quote="A. S. Tanenbaum"]The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.[/quote] | |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 31.01.08 22:08 |   |
konkretne mi vypisuje chybu Invalid argument supplied for foreach() na riadok
foreach ($files[$aktualna] as $file)
...
a na php.net je nieco ako
| kód: | <?php
$vstupne_pole = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($vstupne_pole, 2));
print_r(array_chunk($vstupne_pole, 2, true));
?> |
to je to ze, jeden ten "cyklus" alebo ako to nazvat, sa ulozi pod jedno "pismeno"?? neviem sa teraz vyjadrit dufam ze ma chapes..
http://sk.php.net/manual/sk/function.array-chunk.php |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
p360t
 Skúsený užívateľ
 Založený: 30.05.2006 Príspevky: 1775 Bydlisko: BA - EASTSIDE
 | Zaslal: Št 31.01.08 22:23 |   |
Veď si ten kód spusti, uvidíš ako sa ti zobrazí to pole po "rozsekaní". |
_________________ [quote="A. S. Tanenbaum"]The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.[/quote] | |
    |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
|