You are here: keep variables in pagination « PHP Programming Language « IT news, forums, messages
keep variables in pagination

Posted by EOZyo on 10/07/77 11:39

Hi, i'm trying to set pagination for a search i run on my website, i'll
try to explain the easiest i can:

When i click the search button on search.php, data is received and
stored in variables within results.php, MySQL structure seems to work
as expected, although i get some problems:

As soon as i click on the "Page 2" Link, i get nothing, neither results
nor page numbers.

I know why this happens: after clicking on any "Page X" link, the page
self-reloads and this changes the stored value in the VARIABLES (i
assume to 0 or nothing), therefore, MySQL structure doesn't work, since
there's no correct data to set the query.

Stating the obvious, if i set a fixed value instead of a variable my
structure perfectly works:

-> Results are displayed
-> Page numbers reflect the data stored in MySQL
-> Page numbers are fully fonctional, i can click them
in any way, and it always work.

But i cannot set a fixed value since data is defined in search.php, so
results.php cannot have a fixed values, otherwise, the search is not a
search, it's only a fixed d

So my question is how do i keep the values received from the search.php
after every self-reload of the page.

This is the code i am using:

<?php

// Database Connection
include 'db.php';

// THIS ARE THE VARIABLES TO KEEP EVERY PAGE RELOAD

$table = $_POST['table'];
$data02 = $_POST['data02'];
$data03 = $_POST['data03'];
$data04 = $_POST['data04'];
$data05 = $_POST['data05'];
$data06 = $_POST['data06'];
$data07 = $_POST['data07'];
$data08 = $_POST['data08'];
$data09 = $_POST['data09'];

// If current page number, use it if not, set one!

if(!isset($_GET['page'])){
$page = 1;
} else {
$page = $_GET['page'];
}

// Define the number of results per page

$max_results = 10;

// Figure out the limit for the query based on the current page number.

$from = (($page * $max_results) - $max_results);

// Perform MySQL query on only the current page number's results

// THIS VARIABLES DATA (DECLARED ABOVE) IS ERASED AFTER THE PAGE RELOAD
// THIS IS THE DATA I'D LIKE TO KEEP FOR EVERY RELOAD.

$sql = mysql_query("SELECT * FROM `$table` WHERE `data02` LIKE
'%$data02%' AND `data03` LIKE '%$data03%' AND `data04` LIKE '%$data04%'
AND `data05` LIKE '%$data05%' AND `data06` LIKE '%$data06%' AND
`data07` >= $data08 AND `data07` <= $data09 ORDER BY `data07` ASC LIMIT
$from, $max_results");

echo '<table id="cssstyle">'."\n";
echo "<tr> <th>Top</th> <th>Top</th> <th>Top</th> <th>Top</th>
<th>Top</th> <th>Top</th> <th>Top</th> <th>Top</th>
<th>Top</th>"."\n"."</tr>"."\n";

while($row = mysql_fetch_array($sql)){ // Build your formatted
below.

echo '<tr>'."\n"."<td align='left'>"."\n";
echo $row['1strow'];
echo "\n"."</td>"."\n"."<td align='center'>"."\n";
echo $row['2ndrow'];
echo "\n"."</td>"."\n"."<td align='center'>"."\n";
echo $row['3rdrow'];
echo "\n"."</td>"."\n"."<td align='center'>"."\n";
echo $row['4throw'];
echo "\n"."</td>"."\n"."<td align='center'>"."\n";
echo $row['5throw'];
echo "\n"."</td>"."\n"."<td align='center'>"."\n";
echo $row['6throw'];
echo "\n"."</td>"."\n"."<td align='center'>"."\n";
echo $row['7throw'];
echo "\n"."</td>"."\n"."<td width='28%' align='left'>"."\n";
echo $row['8throw'];
echo "\n"."</td>"."\n"."<td align='center'>"."\n";
echo $row['9throw'];
echo "</a>"."\n"."</td>"."\n"."</tr>"."\n"."\n";
}
echo "</table>"."\n"."</div>"."\n"."<!-- Results-wrapper Ends
-->"."\n";

// Figure out the total number of results in DB:

// "$table" VALUE IS NOT KEEPT AFTER PAGE RELOADS.
// AND LIKE THE OTHER VALUES, IT SHOULD BE KEPT.

$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM
$table"),0);

// Figure out the total number of pages. Always round up using ceil()
$total_pages = ceil($total_results / $max_results);

// Build Page Number Hyperlinks
echo "<div id='pages'><center>Select a Page<br />";

// Build Previous Link
if($page > 1){
$prev = ($page - 1);
echo "<a
href=\"".$_SERVER['PHP_SELF']."?page=$prev\">&lt;&lt;Previous</a> ";
}

for($i = 1; $i <= $total_pages; $i++){
if(($page) == $i){
echo "$i ";
} else {
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$i\">$i</a> ";
}
}

// Build Next Link
if($page < $total_pages){
$next = ($page + 1);
echo "<a
href=\"".$_SERVER['PHP_SELF']."?page=$next\">Next&gt;&gt;</a>";
}
echo "</center>"."\n";

?>

I hope you can help me, i'm don't master php, but i understand a lot of
it; I'm actually thinking that what might solve my problem will come
from something like:


http://www.mysite.com/results.php?page=XX&var02=XX&var03=XX&var04=XX

But that's exactly what i don't know how to do U_U

Thanks, and i hope you could help me

Regards,
EOZyo.

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация