ccutla Posted June 6, 2006 Share Posted June 6, 2006 I have a search program that includes pagination, I have not been able to figure out where I need to put my search variables into the href's for my results, so now, I get the first page but nothing after that. This is the line that I am pretty sure needs to be included amongst the hrefs:&metode=$metode&search=$search&metode2=$metode2&search2=$search2&metode3=$metode3&search3=$search3If anyone could explain to me where I need to put that or if I need to do something completely different to pass my search results through the rest of the pages that would be awesome, thanks!php:[code]<center><table border="1" cellpadding="5" cellspacing="0" bordercolor="#000000"><tr><td width="60"><b>DT_STRING</b></td><td width="100"><b>ACCOUNT</b></td><td width="30"><b>ACCOUNT_TYPE</b></td><td width="150"><b>CLIENT_ID</b></td><td width="150"><b>USER_ID</b></td></tr><tr><td><?php// Database and Sever Values$user_db = 'root'; // Server Username $pass_db = 'rootroot'; // Server Password$host_db = 'mysql'; //Server (e.g. localhost)$db = 'AUDITMED'; // Database Name//// Connect Information - No need to edit@mysql_connect ($host_db, $user_db, $pass_db);@mysql_select_db ($db);//$metode = $_REQUEST['metode'];$search = $_REQUEST['search'];$metode2 = $_REQUEST['metode2'];$search2 = $_REQUEST['search2'];$metode3 = $_REQUEST['metode3'];$search3 = $_REQUEST['search3'];$table = 'AUDIT'; // The name of your table in the database$limit = '100'; // How many results should be shown at a time$scroll = '1'; // Do you want the scroll function to be on (1 = YES, 2 = NO)$scrollnumber = '10'; // How many elements to the record bar are shown at a time when the scroll function is on// Get the total number of rows in a database$query1 = mysql_query ("SELECT * FROM $table WHERE $metode LIKE '%$search%' AND $metode2 LIKE '%$search2%' AND $metode3 LIKE '%$search3%' ORDER by CLIENT_ID");$numrows = mysql_num_rows ($query1);//if (!isset ($_GET['show'])) { $display = 1; } else { $display = $_GET['show']; }// Return results from START to LIMIT$start = (($display * $limit) - $limit);$query2 = mysql_query ("SELECT * FROM $table WHERE $metode LIKE '%$search%' AND $metode2 LIKE '%$search2%' AND $metode3 LIKE '%$search3%' ORDER by CLIENT_ID LIMIT $start,$limit"); // Add ORDER BY field ASC or DESC to order the resultswhile ($row = mysql_fetch_array ($query2)) { $variable1=$row["DT_STRING"]; $variable2=$row["ACCOUNT"]; $variable3=$row["ACCOUNT_TYPE"]; $variable4=$row["CLIENT_ID"]; $variable5=$row["USER_ID"]; //table layout for results echo ("<tr>"); echo ("<td>$variable1</td>"); echo ("<td>$variable2</td>"); echo ("<td>$variable3</td>"); echo ("<td>$variable4</td>"); echo ("<td>$variable5</td>"); echo ("</tr>"); }; //$paging = ceil ($numrows / $limit);// Display the navigationif ($display > 1) { $previous = $display - 1; ?><a href="<?= $_SERVER['PHP_SELF']; ?>?show=1"><< First</a> | <a href="<?= $_SERVER['PHP_SELF'] ?>?show=<?= $previous; ?>">< Previous</a> |<?php}if ($numrows != $limit) { if ($scroll == 1) { if ($paging > $scrollnumber) { $first = $display; $last = ($scrollnumber - 1) + $display; } } else { $first = 1; $last = $paging; } if ($last > $paging ) { $first = $paging - ($scrollnumber - 1); $last = $paging; } for ($i = $first;$i <= $last;$i++){ if ($display == $i) { ?>[ <b><?= $i ?></b> ]<?php } else { ?>[ <a href="<?= $_SERVER['PHP_SELF']; ?>?show=<?= $i; ?>"><?= $i; ?></a> ] <?php } }}if ($display < $paging) { $next = $display + 1;?>| <a href="<?= $_SERVER['PHP_SELF']; ?>?show=<?= $next; ?>">Next ></a> | <a href="<?= $_SERVER['PHP_SELF']; ?>?show=<?= $paging; ?>">Last >></a><?php}//?></table></center>[/code]Thanks again![b]EDIT BY OBER: PLEASE USE BB CODE TAGS![/b] Quote Link to comment https://forums.phpfreaks.com/topic/11340-help-i-am-stuck/ Share on other sites More sharing options...
shoz Posted June 6, 2006 Share Posted June 6, 2006 If you're using PHP 5 then [a href=\"http://php.net/http_build_query\" target=\"_blank\"]http_build_query()[/a] should be useful. I assume you want to add the values to these lines[code]| <a href="<?= $_SERVER['PHP_SELF']; ?>?show=<?= $next; ?>">Next ></a> |<a href="<?= $_SERVER['PHP_SELF']; ?>?show=<?= $paging; ?>">Last >></a>[/code]eg:[code]<a href="<?= $_SERVER['PHP_SELF']; ?>?show=<?="$next&metode=$metode&search=$search&metode2=$metode2&search2=$search2&metode3=$metode3&search3=$search3"; ?>">Next ></a>[/code]I did a copy and paste, so you may need to work out any problems yourself. You'll also want to check whether or not any data was sent using a function such as [a href=\"http://www.php.net/isset\" target=\"_blank\"]isset()[/a]. Where, if there was no data sent you can either remove the argument from the query string or have it be equal to ''.[quote][code]$query1 = mysql_query ("SELECT * FROM $table WHERE $metode LIKE '%$search%' AND $metode2 LIKE '%$search2%' AND $metode3 LIKE '%$search3%' ORDER by CLIENT_ID");[/code][/quote]Instead of running the above query twice (once with and without the LIMIT clause). You can use [a href=\"http://dev.mysql.com/doc/refman/4.1/en/information-functions.html\" target=\"_blank\"]FOUND_ROWS()[/a] (Do a "find"/"search" with your browser), to determine what the number of rows returned would have been without a LIMIT.You should also take a look at the function [a href=\"http://www.php.net/mysql_real_escape_string\" target=\"_blank\"]mysql_real_escape_string[/a]. To get a basic understanding of securing your PHP scripts consider reading this [a href=\"http://phpsec.org/projects/guide/\" target=\"_blank\"]security guide[/a]. Read the entire guide,but I'd direct you first to the SQL INJECTION section. Quote Link to comment https://forums.phpfreaks.com/topic/11340-help-i-am-stuck/#findComment-42536 Share on other sites More sharing options...
ccutla Posted June 7, 2006 Author Share Posted June 7, 2006 Well, I did try all of those things, but I still can't get it to send the query through the href. I know that it sends the query through originally, but not through the page number variables or the first, last, next, previous links. Any other suggestions??? Anybody?Thanks again! Quote Link to comment https://forums.phpfreaks.com/topic/11340-help-i-am-stuck/#findComment-42889 Share on other sites More sharing options...
shoz Posted June 7, 2006 Share Posted June 7, 2006 You should post the code you're currently working with, but before doing so you should also [a href=\"http://php.net/urlencode\" target=\"_blank\"]urlencode[/a] the text before adding it to the link.eg:[code]<a href="<?= $_SERVER['PHP_SELF']; ?>?show=<?="$next&metode=".urlencode($metode)."&search=".urlencode($search)."&metode2=".urlencode($metode2) etc etc"; ?>">Next ></a>[/code]When you're finished, post the code you're currently using and the HTML output being generated when you do a search. I'm assuming everything else in your code works except for the next and prev links btw. I don't plan on checking the rest of the code unless something jumps out at me, or you point out additional problems. Quote Link to comment https://forums.phpfreaks.com/topic/11340-help-i-am-stuck/#findComment-42928 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.