Avatar billede walden Nybegynder
25. august 2004 - 17:21 Der er 5 kommentarer og
1 løsning

side-navigation

Jeg har et script (fundet på http://codewalkers.com/tutorials/20/1.html) som jeg desværre ikke kan få til at virke. Det skulle kunne skabe navigation mellem flere sider ud fra én stor txt-fil. Jeg håber, at der findes nogle her, som kan hjælpe mig med at få scriptet til at virke efter hensigten?

<?php
// if a page isn't defined, we're on page one
if($page <= 0)
{
    $page = 1;
}

// create an array of data
$myArray = file("data.txt");

// reverse the order of the data
$myArray = array_reverse($myArray);

// how many lines of data to display
$display = 5;

// where to start depending on what page we're viewing
$start = ($page * $display) - $display;

/*********************************************************/
   
$realstart = ($start + 1);
$finish = ($start + $display);
$keys = count($data);
$newspages = ($keys / 10);
if ($finish > $keys) {
    $finish = $keys; }

    if ($page > 1) {
?>
    << <a href="<?=$PHP_SELF;?>?page=<?=($page - 1);?>">previous</a> ||
<?php }
    echo "displaying items " . $realstart . " through " . $finish;
    if ($page < $newspages) {
?>
    || <a href="<?=$PHP_SELF;?>?page=<?=($page + 1 );?>">next</a> >>
<?php }
    echo "<br />" . $keys . " items total";
   
/*********************************************************/

// the actual news we're going to print
$news = array_slice($myArray, $start, $display);

// printing the data
foreach($news as $key=>$value)
{
    print("line $key: $value<br>\n");
}
?>
Avatar billede dennismp Nybegynder
25. august 2004 - 17:41 #1
Du glemte vist at skrive, hvad problemet er?
Avatar billede hmortensen Nybegynder
25. august 2004 - 18:48 #2
Så skulle den være der:

<?php
// if a page isn't defined, we're on page one
if($page <= 0)
{
    $page = 1;
}

// create an array of data
$myArray = file("data.txt");

// reverse the order of the data
$myArray = array_reverse($myArray);

// how many lines of data to display
$display = 5;

// where to start depending on what page we're viewing
$start = ($page * $display) - $display;

/*********************************************************/
   
$realstart = ($start + 1);
$finish = ($start + $display);
$keys = count($myArray);
$newspages = ($keys / 10);
if ($finish > $keys) {
    $finish = $keys; }

    if ($page > 1) {
?>
    << <a href="<?=$PHP_SELF;?>?page=<?=($page - 1);?>">previous</a> ||
<?php }
    echo "displaying items " . $realstart . " through " . $finish;
    if ($page < $newspages) {
?>
    || <a href="<?=$PHP_SELF;?>?page=<?=($page + 1 );?>">next</a> >>
<?php }
    echo "<br />" . $keys . " items total<br>";
   
/*********************************************************/

// the actual news we're going to print
$news = array_slice($myArray, $start, $display);

// printing the data
foreach($news as $key=>$value)
{
    print("line".($key+1).": ".$value."<br>\n");
}
?>

$keys = count($data);
var forkert variable. den skal jo tælle på myArray.
jeg har også lagt en til linie nr, så den starter med 1 istedet for 0
Avatar billede walden Nybegynder
25. august 2004 - 22:31 #3
Tak for din hjælp ... nu er jeg kommet et skridt videre  ... for rigtig at få fornøjelse af scriptet, kan du så hjælpe med at dele teksten op efter antal ord i stedet for efter hver 5. linie ... fx 500 ord per side ... ?
Avatar billede walden Nybegynder
27. august 2004 - 08:32 #4
Hej hindu_skp

Kan du ikke lave et svar, så jeg kan tildele dig dine points?
Avatar billede hmortensen Nybegynder
27. august 2004 - 09:16 #5
Jo, det kan jeg da godt.

Du kan måske bruge noget af det her til dit andet problem:
http://eksperten.dk/spm/244751
Avatar billede walden Nybegynder
27. august 2004 - 09:19 #6
Tak ... den prøver jeg lige at se nærmere på!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester