Hi there guys & gals, this is my first post here will try to be as accurate as possible.

The problem i have seems to me to be quite basic but i cannot for the life of me work out how i can do it, am hoping you good folks can point me in the right direction.

I have data in .txt file format, single line per entry, passed into an array, single line to be displayed per page, what i cannot figure out is how to make a 'next page' and 'previous page' link to modify the var's i am using to correctly get the line in the file.

Here is my current php code active on the page it currently grabs var's from the address line
example: file.php?file_select=ttc01-10&chapter=8 where file_select = filename of the .txt file and chapter = the line to read and displayed.

Any advice, hints or tips would be greatly welcomed:

$file_select = 'ttc_intro';
if ($HTTP_GET_VARS) $file_select = $HTTP_GET_VARS['file_select'];  
if ($HTTP_POST_VARS) $file_select = $HTTP_POST_VARS['file_select'];
										
$chapter = 0;  
if ($HTTP_GET_VARS) $chapter = $HTTP_GET_VARS['chapter'];  
if ($HTTP_POST_VARS) $chapter = $HTTP_POST_VARS['chapter'];

$file_selected = $file_select.'.txt';				
				
$lines = file($file_selected);
$line = $lines[$chapter];
			
print '<br />';	
print '<table width="685" align="center" cellspacing="1"><tr class="title_colour"><td colspan="2"><div align="center">';
				
print $line;

print '</div></td></tr><tr class="title_colour"><td width="338"><div align="center">
<strong>&lt;&lt; Previous Chapter </strong></div></td><td width="340">
<div align="center"><strong>Next Chapter &gt;&gt; </strong></div></td></tr></table>';		  
print '<br />';

And what i would like is to get two links that update based on the var's to the previous line and the next line in the array.

Take care, and thanks for any replies :)

Recommended Answers

All 4 Replies

if($chapter!=0){  // if chapter has some value and if its not 0.
   $prev_link=$chapter - 1; //set previous link as chapter - 1.
} else {
$prev_link=0; //if chapter = 0, then theres no previous link, make it 0 as well.
}
if($chapter < count($lines)){ //if the chapter is less than the number of lines, next_link is valid.
   $next_link=$chapter + 1; //assign next chapter to $next_link
}


echo "<a href='file.php?chapter=$prev_link'>Previous chapter</a><br>";
echo "<a href='file.php?chapter=$next_link'>Next  chapter</a><br>

Thats it, i guess. Btw, most of the people dont use vars anymore. Its outdated. You can do something like this.
[inline]
$file_select=(isset($_REQUEST))?$_REQUEST: "ttc_intro";[/inline] Here you are checking if file_select has been set by any of the methods, $_GET or $_POST. if its set, then assign that value to $file_select, else, assign ttc_intro to $file_select. You can do the same thing while checking for chapters as well..

Cheers,
Naveen

Why thank you very much good sir :)

I knew it wouldnt be too difficult to do but i am still a relative newbie to php, i think my php book might be a little out of date now. Thanks for the update on the GET and POST.

Going to implement your code soon, and hopefully that will have solved my problem, again thank you very much for your assistance.

-Daito

you are welcome.

After a bit of head scratching i worked out i needed to adapt the code a tiny wee bit to get it working but this is defiantly solved.

Where:

echo "<a href='file.php?chapter=$prev_link'>Previous chapter</a><br>";
echo "<a href='file.php?chapter=$next_link'>Next chapter</a><br>";

Now:

echo "<a href='file.php?file_select=$file_select&chapter=$prev_link'>Previous chapter</a><br>";
echo "<a href='file.php?file_select=$file_select&chapter=$next_link'>Next chapter</a><br>";

Again i thank you for taking the time to help me out :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.